[Bug target/15941] [3.4/3.5 regression] new fails gcc.dg/compat/struct-by-value-11 and gcc.dg/compat/struct-by-value-1
dave at hiauly1 dot hia dot nrc dot ca
gcc-bugzilla@gcc.gnu.org
Sat Jun 12 21:37:00 GMT 2004
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2004-06-12 21:37 -------
Subject: Re: [3.4/3.5 regression] new fails gcc.dg/comp
> > > The 32-bit PA ABI has rather special requirements for passing 5-7 byte
> > > structs. See the comment in function_arg in pa.c. I believe the fail
> > > in test5 is caused by trying to pass a 5 byte struct.
> >
> > So is the PA FUNCTION_ARG_BOUNDARY function lying about the alignment?
>
> Well, it's not defined so how could we be lying ...
Sorry, the last mail was wrong. FUNCTION_ARG_BOUNDARY does the
right thing as far as I can tell. It returns either PARM_BOUNDARY
or MAX_PARM_BOUNDARY (32 or 64 on the 32-bit port).
We need 64 bit alignment for a 5 byte struct on the 32-bit port. It
has to be padded downward. Achieving the required padding for structs
larger than a word was difficult and was an outstanding ABI bug for
years.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15941
More information about the Gcc-bugs
mailing list