diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp90.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp90.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp90.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp90.c new file mode 100644 index 000000000..836c335b6 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/vrp90.c @@ -0,0 +1,36 @@ +/* { dg-do link } */ +/* { dg-options "-O2 -fdump-tree-vrp1" } */ +/* { dg-final { scan-tree-dump-not "link_error" "vrp1"} } */ +/* { dg-final { cleanup-tree-dump "vrp1" } } */ + +extern void link_error (void); + +__attribute__((noinline, noclone)) int +foo (unsigned int n, int r) +{ + int i; + if (n > 0) + { + asm (""); + if (n < 10) + { + asm (""); + do + { + --n; + r *= 2; + if (n >= 9) + link_error (); + } + while (n > 0); + } + } + return r + n; +} + +int +main () +{ + foo (7, 2); + return 0; +} |