When I compile ACE5.4.2 with the latest snapshot (20050213) I get an ICE. Michael Cieslinski g++ -O3 -ftree-vectorize -c -o Hash_Map.o Hash_Map.ii Hash_Map.cpp: In function 'int main(int, ACE_TCHAR**)': Hash_Map.cpp:113: internal compiler error: tree check: expected class 'declaration', have 'statement' (label_expr) in tree_verify_flow_info, at tree-cfg.c:3709 Please submit a full bug report, with preprocessed source if appropriate. g++ -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../gcc40/configure --prefix=/usr/local/gcc40d --program- suffix=40d --with-arch=opteron --enable-languages=c,c++ --enable-checking Thread model: posix gcc version 4.0.0 20050213 (experimental)
Created attachment 8193 [details] preprocessed source
I should note this is an ICE right before trying to print out another ICE.
This happens during tree-if-conversion pass (before vectorization) (tree-if- conversion is enabled by -ftree-vectorize)
Confirmed then.
Reduced testcase (just compile with "-O -ftree-vectorize"): ============================== 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(); } } ==============================
: Search converges between 2004-09-02-trunk (#532) and 2004-09-04-trunk (#533).
Devang, the regression was introduced with the introduction of the if-conversion for the vectorizer by your patch http://gcc.gnu.org/ml/gcc-cvs/2004-09/msg00207.html Could you please have a look?
Subject: Re: ICE: tree check: expected class 'declaration', have 'statement' (label_expr) in tree_verify_flow_info, at tree-cfg.c:3709 ok - Devang
Patch here: http://gcc.gnu.org/ml/gcc-patches/2005-02/msg01283.html Devang, you got the wrong PR number in the name of the testcase and in the ChangeLog entry!
Subject: Bug 19952 CVSROOT: /cvs/gcc Module name: gcc Changes by: dpatel@gcc.gnu.org 2005-02-23 01:10:40 Modified files: gcc : ChangeLog tree-if-conv.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/tree-ssa: pr19952.C Log message: 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. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7563&r2=2.7564 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-if-conv.c.diff?cvsroot=gcc&r1=2.27&r2=2.28 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5068&r2=1.5069 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/tree-ssa/pr19952.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Fixed.