DJ Delorie <[EMAIL PROTECTED]> writes:

> > Yes, BIGGEST_ALIGNMENT is supposed to be the biggest alignment the
> > compiler will ever use.
> 
> Will ever use, or can ever use?  Based on the code, it looks like "can
> ever use" - i.e. it's an edict to the compiler to not exceed that
> value, thus varasm warns when you exceed it.

It's the biggest alignment which the compiler will ever use if it
doesn't see an explicit __attribute__ ((align (N))).  The biggest
alignment which the compiler is permitted to use is set by
MAX_OFILE_ALIGNMENT.  Basically, MAX_OFILE_ALIGNMENT is a restriction
on __attribute__ ((align (N))).

> > So if ix86_data_alignment wants to return 256 for some variable,
> > then it seems to me that BIGGEST_ALIGNMENT should be 256.
> 
> What if the object format doesn't allow recording alignments that
> high?  For example, DJGPP's coff format can only record alignments up
> to 2**4 (16) bytes, but 256 bits is 2**5 (32) bytes.

So BIGGEST_ALIGNMENT > MAX_OFILE_ALIGNMENT.  That's a logical
contradiction.  Bummer.

I don't have a proposal for fixing this except some target specific
hackery in config/i386.  Perhaps somebody else has a better
suggestion?

Ian

Reply via email to