diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/torture/pr60131.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/torture/pr60131.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/torture/pr60131.C b/gcc-4.9/gcc/testsuite/g++.dg/torture/pr60131.C new file mode 100644 index 000000000..23dde316d --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/torture/pr60131.C @@ -0,0 +1,23 @@ +// { dg-do compile } +struct A { short a; }; +int **b; +unsigned long c; + +bool foo (); +unsigned bar (unsigned i); +extern void baz () __attribute__((noreturn)); + +int * +test (unsigned x, struct A *y) +{ + unsigned v; + if (foo () || y[x].a == -1) + { + c = bar (x); + return 0; + } + v = y[x].a; + if (v >= 23) + baz (); + return b[v]; +} |