Question about generated type for common block in fortran

Michael Matz matz@suse.de
Mon Nov 13 10:01:00 GMT 2017


Hi,

On Thu, 9 Nov 2017, Bin.Cheng wrote:

> So I have two questions here.
> A) Is this special kind union type only generated by fortran FE for
> equivalence+common?

It's not special in that it isn't marked in any way.  For all purposes 
it's a normal union type with surprising field(offset)s.  I don't know if 
it can occur for any situations except equivalence+common.  Not from the 
fortran frontend I believe.

> B) For the special union type that has non-zero offset fields.  Is it
> safe to assume field A is not the last flex array: if there is field B
> that offset_B >= (offset_A + length_A)?

No.  You can make equivalences between all kinds of objects, 
including non-arrays.  You can also equivalence (say) an integer variable 
and an individual array element.  Also flex arrays don't enter the 
picture, you can equivalize (tm) also arrays of fixed size.


Ciao,
Michael.



More information about the Gcc mailing list