diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/20040627-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/20040627-1.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/20040627-1.c b/gcc/testsuite/gcc.dg/20040627-1.c new file mode 100644 index 000000000..2b4f09fef --- /dev/null +++ b/gcc/testsuite/gcc.dg/20040627-1.c @@ -0,0 +1,42 @@ +/* { dg-do link } */ +/* { dg-options "-O2" } */ + +extern void link_error (void); + + +void test(int x) +{ + if ((x & ~x) != 0) + link_error (); + if ((~x & x) != 0) + link_error (); + + if ((x ^ ~x) != -1) + link_error (); + if ((~x ^ x) != -1) + link_error (); + + if ((x | ~x) != -1) + link_error (); + if ((~x | x) != -1) + link_error (); + + if (x && !x) + link_error (); + if (!x && x) + link_error (); + + if (!(x || !x)) + link_error (); + if (!(!x || x)) + link_error (); +} + +int main() +{ + test (0); + test (1); + test (-1); + return 0; +} + |