|
| From: | grischka |
| Subject: | Re: [Tinycc-devel] wrong preprocessor shift operation |
| Date: | Tue, 30 Dec 2008 17:32:57 +0100 |
| User-agent: | Thunderbird 2.0.0.18 (X11/20081125) |
Christian Jullien wrote:
Many thanks, I tested your fix but I still have a broken case:
int
main()
{
unsigned int x = 0xffffffff;
unsigned int y = 1;
printf("fixed %08x\n", x >> y);
printf("fixed %08x\n", (~(unsigned int)0) >> (unsigned int)1);
printf("fails %08x\n", (~0) >> 1);
}
Christian
But for me results are the same with gcc and tcc $ gcc test.c -o test && ./test fixed 7fffffff fixed 7fffffff fails ffffffff $ ./tcc -run test.c fixed 7fffffff fixed 7fffffff fails ffffffff Maybe gcc is not correct but then I need an exact explanation why ;)
| [Prev in Thread] | Current Thread | [Next in Thread] |