constant expression bug in gcc
Graham Stott
grahams@redhat.com
Fri Nov 30 04:41:00 GMT 2001
Peter,
Peter Selinger wrote:
>
> There is an apparent bug in constant expression evaluation in gcc 2.96.
>
> Here is a program:
>
> #include <stdio.h>
>
> int main() {
> printf("%d\n", sizeof(unsigned long)-5 );
> printf("%d\n", (sizeof(unsigned long)-5) >= 0 ? 1 : -1);
> }
>
> Here is its output:
>
> % ./test
> -1
> 1
> % uname -a
> Linux caiaphas 2.2.19-7.0.8 #1 Thu Jun 21 04:59:33 EDT 2001 i686 unknown
> % gcc --version
> 2.96
>
> Please let me know if you need more information.
> Thanks, -- Peter
No more info needed. It is not a bug.
sizeof returns an unsigned integral type (size_t) so the expression
"sizeof (unsigned long) - 5" is itself unsigned, hence the output you
quoted is correct.
Graham
More information about the Gcc-bugs
mailing list