diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/tree-ssa/pr29902.C')
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr29902.C | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr29902.C b/gcc/testsuite/g++.dg/tree-ssa/pr29902.C new file mode 100644 index 000000000..838a41169 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr29902.C @@ -0,0 +1,19 @@ +/* { dg-do compile { target i?86-*-* } } */ +/* { dg-options "-O1 -fprefetch-loop-arrays -march=athlon" } */ +/* { dg-require-effective-target ilp32 } */ + +int length1(); +int g(int); +void f(int capacity_, char *old_storage) +{ + try { + length1(); + int old_capacity = capacity_; + capacity_ *= 2; + g(capacity_); + for (int i = 1; i < old_capacity; i++) + old_storage[i] = old_storage[i - 1]; + } catch (...) { + for (int i = 1; i < capacity_; i++){old_storage[i] = 0;} + } +} |