This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: revap types, step 1


Richard Henderson wrote:
> On Thu, Aug 26, 2004 at 05:52:56PM +0200, Tobias Schlüter wrote:
> 
>>(2) A nonpointer scalar object of type double precision real or default
>>complex occupies two contiguous numeric storage units;
> 
> 
> What does this mean?  That DOUBLE PRECISION should *claim* two
> storage units even if it doesn't use it?

Storage association only happens for EQUIVALENCES and COMMONs on the one hand,
and function return variables (i.e. in the case of function entries) on the
other hand. This also means that arrays which appear in one of these contexts
will have to be layed out as if they were consisting of elements of these
sizes. I don't know what our implementation of the TRANSFER intrinsic assumes,
it might also be affected by this. If you meant those contexts with "claiming"
then, yes.

I actually missed number five when copying these rules, it might also be
interesting in this context:

(5) A nonpointer scalar object of type nondefault integer, real other than
default or double precision, nondefault logical, nondefault complex,
nondefault character of any length, or nonsequence type occupies a single
<b>unspecified storage unit</b> that is different for each case.

Arrays and sequence types are treated as you would assume: one of the
appropriate storage units for each element/component.

- Tobi


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]