Eric Blake <[email protected]> writes:

> Thanks for the report.  It is indeed a bug, and we should be able to work
> around it.  We need to break x>>63 into the more appropriate
> ((x>>31)>>31)>>1 to work around this.  But before I work on the necessary

Indeed: this works even with the old GCC.

> m4 magic, is it also a problem with smaller types?  In other words, what
> happens with:
>
> int
> main ()
> {
> static int test_array [1 - 2 * !((unsigned char) -1 >> (32 - 1) == 1)];
> test_array [0] = 0
>
>   ;
>   return 0;
> }

Even the old GCC 3.4.4 errors out with

conftest.c: In function `main':
conftest.c:4: error: size of array `test_array' is negative

Thanks.
        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


Reply via email to