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