diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/pr19952.C | 24 | ||||
-rw-r--r-- | gcc/tree-if-conv.c | 2 |
4 files changed, 36 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 832c0ed..68199d0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-02-22 Devang Patel <dpatel@apple.com> + + PR 19952 + * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip + all labels + 2005-02-22 David Edelsohn <edelsohn@gnu.org> * config/rs6000/aix.h (WINT_TYPE): Define. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 86857d2..1a64436 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-22 Devang Patel <dpatel@apple.com> + + PR 19952 + * g++.dg/tree-ssa/pr19952.C: New test. + 2005-02-22 Mark Mitchell <mark@codesourcery.com> PR c++/19883 diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr19952.C b/gcc/testsuite/g++.dg/tree-ssa/pr19952.C new file mode 100644 index 0000000..92d669c --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr19952.C @@ -0,0 +1,24 @@ +/* PR 19952 */ +/* { dg-compile } */ +/* { dg-options "-ftree-vectorize -O2" } */ + +int i; + +struct A +{ + ~A() { ++i; } +}; + +struct B +{ + A a; +}; + +void foo() +{ + for (int i=0; i<2; ++i) + { + B *p; + if (p) p->~B(); + } +} diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 73fba3f..52bcfba 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -830,7 +830,7 @@ process_phi_nodes (struct loop *loop) continue; phi = phi_nodes (bb); - bsi = bsi_start (bb); + bsi = bsi_after_labels (bb); /* BB has two predecessors. Using predecessor's aux field, set appropriate condition for the PHI node replacement. */ |