LAM/MPI logo

LAM/MPI Development Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Brian Barrett (brbarret_at_[hidden])
Date: 2006-06-08 00:18:38


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/