This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC 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]

[Bug libfortran/37839] st_parameter_dt has unwanted padding, is out of sync with compiler



------- Comment #9 from sje at cup dot hp dot com  2008-10-28 18:26 -------
Further investigation shows that it is not the size of common that is the
problem.  The bug is related to the new union of st_parameter_43 and
st_parameter_44.  Specifically, st_parameter_44 contains pos which is type
GFC_IO_INT which is 8 bytes on IA64 and requires an 8 byte alignment.  This
causes the entire st_parameter_44 structure to require 8 byte alignment and the
union that it is part of to require 8 byte alignment.  This changes the
layout/offset of fields in the p and q parts of the st_parameter_dt structure.

The compiler definition of st_parameter_dt, created from ioparm.def,  does not
know anything about the union that is used in the library and just lays out the
fields as if there was no *_44 structure and no union and this layout is then
different then the library layout.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37839


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