Upon further thought, it's just trying to catch a common error, and uses alignment to detect it since the type information is lost thru the interface. In testing on x86_64, it doesn't appear that it will catch the intended error. As Thomas pointed out in another reply, there are also some issues with the implementation, though it is correct that we require intptr_t to build MPICH. At the very least, we could patch to use sizeof(void *) vs. sizeof(intptr_t). Or we can still remove the check since the use-case is so narrow. The preprocessor guard also depends on a AC_TRY_RUN that I'd prefer to delete, to be honest. Ken On 6/19/19 9:27 AM, Raffenetti, Kenneth J. via discuss wrote:
Nick,
I agree this check looks like nonsense. IMO, we can just delete it and the others like it. I will create a PR.
Ken
On 6/18/19 5:25 PM, Nick Radcliffe via discuss wrote:
I recently noticed that a parameter check in MPII_Win_get_attr looks a bit off:
/* A common user error is to pass the address of a 4-byte * int when the address of a pointer (or an address-sized int) * should have been used. We can test for this specific * case. Note that this code assumes sizeof(intptr_t) is * a power of 2. */ if ((intptr_t) attribute_val & (sizeof(intptr_t) - 1)) { MPIR_ERR_SETANDSTMT(mpi_errno, MPI_ERR_ARG, goto fn_fail, "**attrnotptr"); }
The comment indicates that the check is testing "attribute_val" to see if a pointer to int was passed in, rather than a double pointer or pointer to an integer that can store an address. But the check seems to only be testing for 8 byte alignment (and failing if not aligned). Am I missing something here?
Nick Radcliffe Software Engineer| Cray Inc.
2131 Lindau Ln #1000 | Bloomington, MN55425
+1-651-605-8864 [email protected] <mailto:[email protected]> www.cray.com <http://www.cray.com>
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss