Re: Arithmetic Shift

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Dec 10, 2010, at 11:33 AM CST, Ben Pfaff wrote:

> Paul Eggert <eggert@xxxxxxxxxxx> writes:
> 
>> On 12/07/10 20:41, Mike Gibson wrote:
>>> Does a test already exist that checks for if the >> operator in C does
>>> arithmetic shift?
>> 
>> Doesn't this suffice, without dragging Autoconf into it?
>> 
>> #if -1 >> 1 == -1
> 
> Is it even necessary to drag the preprocessor into it?
> 
>        if (-1 >> 1 == 1)

Careful, that expression will probably always evaluate to false.  Although there is always the unlikely possibility of other cases, there are only two sensible values that (-1 >> 1) can evaluate to.  The first is the result of an arithmetic shift, which means that it would be -1.  The second would be the result of a logical shift, or (2**(CHAR_BITS*sizeof(int)-1)-1), probably 2147483647 for most platforms.

-Dave


_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf



[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux