re PR tree-optimization/19952 (ICE: tree check: expected class 'declaration', have 'statement' (label_expr) in tree_verify_flow_info, at tree-cfg.c:3709)

PR 19952
       * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
       all labels
       * g++.dg/tree-ssa/pr19952.C: New test.

From-SVN: r95430
This commit is contained in:
Devang Patel 2005-02-22 17:10:39 -08:00 committed by Devang Patel
parent a47e0c22a0
commit 263fb23d4a
4 changed files with 36 additions and 1 deletions

View File

@ -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.

View File

@ -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

View File

@ -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();
}
}

View File

@ -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. */