/usr/local/gcc40/bin/g++40 -Wall -c -g -pipe -O0 -mcpu=G5 -fpermissive - maltivec -mabi=altivec -o MeRecLut.o MeRecLut.ii -v Reading specs from /usr/local/gcc40/lib/gcc/powerpc-unknown-linux- gnu/4.0.0/specs Configured with: ../gcc40/configure --prefix=/usr/local/gcc40 --program- suffix=40 --with-cpu=G5 --enable-altivec --enable-languages=c,c++ --enable- checking Thread model: posix gcc version 4.0.0 20040919 (experimental) /usr/local/gcc40/libexec/gcc/powerpc-unknown-linux-gnu/4.0.0/cc1plus - fpreprocessed MeRecLut.ii -quiet -dumpbase MeRecLut.ii -mcpu=G5 -maltivec - mabi=altivec -auxbase-strip MeRecLut.o -g -O0 -Wall -version -fpermissive -o - | as -mpower4 -maltivec -maltivec -many -V -Qy -o MeRecLut.o - GNU C++ version 4.0.0 20040919 (experimental) (powerpc-unknown-linux-gnu) compiled by GNU C version 4.0.0 20040919 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 GNU assembler version 2.15.90 (ppc-yellowdog-linux) using BFD version 2.15.90 20040221 MeRecLut.ii: In member function `int MeRecLut::setData(int, char*, unsigned int, unsigned int, unsigned int**)': MeRecLut.ii:45: error: `m_data' was not declared in this scope MeRecLut.ii:52: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in cp_convert_to_pointer, at cp/cvt.c:83
Created attachment 7197 [details] mostly reduced preprocessed source
Confirmed: Here's a reduced testcase: =============================== void foo() { p; (void*) p; } =============================== The ICE only happens with the C++ frontend, and not with the C frontend. Phils's regression tester says: : Search converges between 2004-03-01-trunk (#446) and 2004-04-01-trunk (#447).
I have a fix.
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02324.html>.
Dear Mr Pinski, Thank you for the very fast reaction. In the morning I applied the patch, but unfortunately I couldn't compile my application because is was broken by my colleagues doing incomplete checkins. Today I'm in a meeting, but as soon as possible I will test it and post the result. Michael Cieslinski
Subject: Bug 17618 CVSROOT: /cvs/gcc Module name: gcc Changes by: pinskia@gcc.gnu.org 2004-09-23 20:04:22 Modified files: gcc/cp : ChangeLog cvt.c Log message: 004-09-23 Andrew Pinski <pinskia@physics.uc.edu> PR c++/17618 * cvt.c (cp_convert_to_pointer): Return early when the type is an error_mark_node. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4380&r2=1.4381 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cvt.c.diff?cvsroot=gcc&r1=1.165&r2=1.166
Fixed.
Subject: Bug 17618 CVSROOT: /cvs/gcc Module name: gcc Changes by: pinskia@gcc.gnu.org 2004-09-23 20:16:48 Modified files: gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/lookup: crash5.C Log message: 2004-09-23 Andrew Pinski <pinskia@physics.uc.edu> PR c++/17618 * g++.dg/lookup/crash5.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4336&r2=1.4337 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/lookup/crash5.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Subject: Bug 17618 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: reichelt@gcc.gnu.org 2005-10-11 00:39:26 Modified files: gcc/cp : ChangeLog cvt.c name-lookup.c typeck.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/lookup: crash5.C forscope2.C gcc/testsuite/g++.dg/conversion: const3.C Log message: Backport: 2004-09-23 Andrew Pinski <pinskia@physics.uc.edu> PR c++/17618 * cvt.c (cp_convert_to_pointer): Return early when the type is an error_mark_node. 2004-05-22 Roger Sayle <roger@eyesopen.com> * name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by returning when TREE_TYPE is error_mark_node. * typeck.c (require_complete_type): Return error_mark_node if value's type is an error_mark_node. 2004-11-02 Mark Mitchell <mark@codesourcery.com> PR c++/18177 * typeck.c (build_const_cast): Use error_operand_p. 2004-09-23 Andrew Pinski <pinskia@physics.uc.edu> PR c++/17618 * g++.dg/lookup/crash5.C: New test. 2004-05-22 Wolfgang Bangerth <bangerth@dealii.org> Roger Sayle <roger@eyesopen.com> * g++.dg/lookup/forscope2.C: New test case. 2004-11-02 Mark Mitchell <mark@codesourcery.com> PR c++/18177 * g++.dg/conversion/const3.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.245&r2=1.3892.2.246 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cvt.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.151.4.4&r2=1.151.4.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.34.2.25&r2=1.34.2.26 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.519.2.30&r2=1.519.2.31 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.440&r2=1.3389.2.441 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/lookup/crash5.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.70.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/lookup/forscope2.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.76.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/conversion/const3.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.48.1