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.

Reply via email to