2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20020614-1.c
blobbcbaed8ae8e261d53ce5f98c63c90cd17d21080e
1 /* PR c/6677 */
2 /* Verify that GCC doesn't perform illegal simplifications
3 when folding constants. */
5 #include <limits.h>
7 extern void abort (void);
8 extern void exit (int);
10 int main (void)
12 int i;
13 signed char j;
14 unsigned char k;
16 i = SCHAR_MAX;
18 j = ((signed char) (i << 1)) / 2;
20 if (j != -1)
21 abort();
23 j = ((signed char) (i * 2)) / 2;
25 if (j != -1)
26 abort();
28 i = UCHAR_MAX;
30 k = ((unsigned char) (i << 1)) / 2;
32 if (k != UCHAR_MAX/2)
33 abort();
35 k = ((unsigned char) (i * 2)) / 2;
37 if (k != UCHAR_MAX/2)
38 abort();
40 exit(0);