diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/20011219-2.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20011219-2.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011219-2.c b/gcc/testsuite/gcc.c-torture/compile/20011219-2.c new file mode 100644 index 000000000..2ad7eb1a3 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20011219-2.c @@ -0,0 +1,20 @@ +/* This testcase failed on Alpha at -O2 when simplifying conditional + expressions. */ + +struct S { + unsigned long a; + double b, c; +}; + +extern double bar (double, double); + +int +foo (unsigned long x, unsigned int y, struct S *z) +{ + unsigned int a = z->a; + int b = y / z->a > 1 ? y / z->a : 1; + + a = y / b < z->a ? y / b : z->a; + z->c = z->b * bar ((double) a, (double) x); + return 0; +} |