diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55107.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55107.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55107.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55107.c new file mode 100644 index 000000000..2402716be --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr55107.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ + +typedef unsigned short uint16_t; + +uint16_t a, b; + +uint16_t f(void) +{ + int c, **p; + short d = 2, e = 4; + + for (;; b++) + { + int *j, k = 0; + + for (; *j; j++) + { + for(; c; c++) + for(; k < 1; k++) + { + short *f = &d; + + if(b) + return *f; + } + } + + if(!c) + d *= e; + + ((a = d) ? b = 0 : (**p ? : 1) != (d != 1 ? : (a = 0))) != (k ? a : 0) + < (a *= c = k) && (**p = 0); + } +} |