diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c new file mode 100644 index 000000000..4a575a7a4 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-8.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fdump-tree-sink" } */ + +int foo(int *a, int r, short *b) +{ + int ret = 0; + *a = 1; + switch (r) + { + case 3: + *a = 5; + break; + case 4: + case 5: + *a = 9; + ret = r + 25; + break; + default: + ret = r + 20; + } + *b = 9; + return ret; +} + +/* *a = 1 should be sunk into the default case. */ + +/* { dg-final { scan-tree-dump-times "Sinking" 1 "sink" } } */ +/* { dg-final { cleanup-tree-dump "sink" } } */ |