diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/tree-ssa/pr81719.C')
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr81719.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr81719.C b/gcc/testsuite/g++.dg/tree-ssa/pr81719.C new file mode 100644 index 00000000000..6e017afbae2 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr81719.C @@ -0,0 +1,24 @@ +/* { dg-do compile { target c++11 } } */ +/* { dg-options "-O3 -fdump-tree-optimized" } */ + +typedef int Items[2]; + +struct ItemArray +{ + Items items; + int sum_x2() const; +}; + +int ItemArray::sum_x2() const +{ + int total = 0; + for (int item : items) + { + total += item; + } + return total; +} + +/* We should be able to compute the number of iterations to two, unroll + the loop and end up with a single basic-block in sum_x2. */ +/* { dg-final { scan-tree-dump-times "bb" 1 "optimized" } } */ |