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

> Paul Eggert <[email protected]> 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
[email protected]
http://lists.gnu.org/mailman/listinfo/autoconf

Reply via email to