On May 23, 2006, at 1:49 PM, Orion Poplawski wrote:
> Orion Poplawski wrote:
>> When compiled with -O2 and gcc 4.0.2 or 4.1.0 on x86_64,
>> lam_int_pos()
>> returns the incorrect result. This breaks MPI_Attr_get() when called
>> from Fortran (and was detected in the 7.1.2 test suite by
>> attrsetget_f).
>> I've filed a bug with gcc here
>> <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27744>, but in the
>> meantime
>> I've just hacked lam_int_pos() to return 0, which is the correct
>> result
>> on x86_64. I haven't tested with other versions of gcc, but suspect
>> this may have come in with 4.0.
>>
>
> Here's the response from the gcc folks:
>
> ---
>
> This code accesses v, which is of type void*, via an lvalue of type
> int.
> This is not allowed by C aliasing rules. Use -fno-strict-aliasing or a
> union to express this operation.
Thanks for the bug report. I've committed a fix in our subversion
repository for this issue (that does not require the -fno-strict-
aliasing option). I plan on building a 7.1.3 beta this weekend,
including this fix. In the mean time, you can get the subversion
code from:
http://www.lam-mpi.org/svn/
Thanks,
Brian
--
Brian Barrett
LAM/MPI developer and all around nice guy
Have a LAM/MPI day: http://www.lam-mpi.org/
|