[mpi-21] Ballot 4 proposal: fix attribute example 4.13

Terry Dontje Terry.Dontje at [hidden]
Thu Feb 7 09:49:12 CST 2008

Sorry I didn't send this out sooner but in reading the discussion for 
the errata item "Interlaguage use of Attributes" I think the below 
proposal has a potential hole that never was resolved in the mail 
discussion in:

The specific hole pointed out by Nick Nevin in the following paragraph 
from the email discussion:

This might work for predefined attributes where the address can
point to the integer value in static storage, but won't work for
attributes set by the user in Fortran code.  If you store a pointer
to the integer as the attribute it may point to a temporary which
might no longer exist when you try and access it later.

So I think relying on the address passed in for the attribute as opposed 
to the value could cause some
issues with Fortran.

Jeff Squyres wrote:
> Per 
> http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-errata/, 
> the errata item entitled "Error in Example 4.13 in MPI-2 (Use of 
> Attributes in C and Fortran)".  I believe that this errata item 
> supersedes the errata item "Interlanguage use of Attributes".
> See the mail discussing:
> http://www.cs.uiuc.edu/homes/wgropp/projects/parallel/MPI/mpi-errata/discuss/attrcandf/ 
> Proposal:
> Change MPI-2:4.12, p58:36 from:
> to
>   IF (val.NE.address_of_i) THEN CALL ERROR
> Rationale:
> MPI-2:4.12 p58:12-13 and 16-18 clearly state that if an attribute is 
> set by C, retrieving it in Fortran will obtain the address of the 
> attribute.
> See the mails for more discussion, including an exhaustive list of 
> what happens for each of the 9 possibilities of setting and getting 
> attribute values between the different languages.

More information about the Mpi-21 mailing list