Hi, On Wed, 9 Dec 2009, H.J. Lu wrote:
> > So, IMO we have two sensible proposals: > > (a) specify that bits <7:1> must be zero > > (b) specify that bits <31:1> must be zero > > I uploaded sources and object files generated by gcc 4.4, icc 11.1 > and Sun Studio 12 Update 1 at -O to: > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42324 > > If we go with (a), no changes are needed for gcc, icc and sun studio. > All existing object files are OK. > > If we go with (b), gcc 4.3 and 4.4 are broken in function return. Object > files generated by gcc 4.3 and 4.4 aren't compatible with object files > which assuming bits 1-31 in _Bool return are zero. > > I think (a) is the safest option. The ABI now contains this: ------------------------ When a value of type \code{_Bool} is returned or passed in a register or on the stack, bit 0 contains the truth value and bits 1 to 7 shall be zero. ------------------------ Ciao, Michael.