local variable alignment on Solaris/SPARC, with gcc 4.x
John (Eljay) Love-Jensen
eljay@adobe.com
Fri Sep 21 13:42:00 GMT 2007
Hi Amruth,
Is someFunction() a leaf function (i.e., it does not call any other non-inlined function)?
As I understand the ABI specification, if it is a leaf function, the ABI regarding alignment is not relevant.
If it isn't a leaf function, that sounds like a compiler bug.
>1. Has anyone else experienced the same behavior? I'd like to rule out configuration issues.
No, I use GCC 3.2 on SPARC. (Not my choice. My druthers would be to use the head of the current release.)
But I also do not write code that relies on alignment assumptions. If I have alignment constraints, I'd use a union or GCC's alignment qualifier extension so the constraint is explicit in the code and not assumed.
>2. Assuming this is not a configuration issue, does anyone have information as to why such a change was made?
I assume that the change was made because the SPARC ABI does not impose stack alignment on leaf functions (if the situation is a leaf function).
I may be mistaken.
>3. Does anyone know of any compiler options that would produce the same results globally?
No, sorry. There could be one, but I'm not familiar with it.
But I do recommend using current release GCC 4.2.1 or at least the patched up GCC 4.1.2 instead of GCC 4.1.0.
HTH,
--Eljay
More information about the Gcc-help
mailing list