diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr51957-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr51957-1.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr51957-1.c b/gcc/testsuite/gcc.dg/pr51957-1.c new file mode 100644 index 0000000..d899771 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr51957-1.c @@ -0,0 +1,29 @@ +/* PR target/51957 */ +/* { dg-do link } */ +/* { dg-options "-O2 -g -fprofile-use" } */ +/* { dg-additional-sources "pr51957-2.c" } */ + +int v[128]; +#include "pr51957-1.h" + +void +foo (U *x) +{ + T *a = x->u; + while (1) + { + union R *b; + b = fn1 (); + if (b != w[0] && !(v[b->p->c] == 1)) + { + fn2 (a->t, "foobar", b->p); + b = w[0]; + } + if (b != w[0]) + fn3 (); + if (w[0] && b != w[0]) + fn4 (b->p); + if (b != w[0] && (v[b->p->c] == 1) && fn4 (b->p)) + break; + } +} |