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