The following invalid code snippet causes an ICE since gcc 3.3 (it also crashes gcc 2.95.x, 3.0.x, but doesn't crash gcc 3.1.x, 3.2.x): ======================================= template<typename T> struct T::A {}; ======================================= Mainline issues the following error message: bug.cc:5: internal compiler error: in is_ancestor, at cp/name-lookup.c:2185 Please submit a full bug report, [etc.]
: Search converges between 2002-12-14-trunk (#159) and 2002-12-29-trunk (#160). Confirmed.
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-12/msg00742.html>.
Subject: Bug 18731 CVSROOT: /cvs/gcc Module name: gcc Changes by: reichelt@gcc.gnu.org 2004-12-10 16:04:22 Modified files: gcc/cp : ChangeLog parser.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/parse: struct-1.C struct-2.C struct-3.C Log message: PR c++/18731 * parser.c (cp_parser_class_head): Reject typedef-name in class head. * g++.dg/parser/struct-1.C: New test. * g++.dg/parser/struct-2.C: New test. * g++.dg/parser/struct-3.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4527&r2=1.4528 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.292&r2=1.293 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4734&r2=1.4735 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-3.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Subject: Bug 18731 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: reichelt@gcc.gnu.org 2004-12-10 16:13:47 Modified files: gcc/cp : ChangeLog parser.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/parse: struct-1.C struct-2.C struct-3.C Log message: PR c++/18731 * parser.c (cp_parser_class_head): Reject typedef-name in class head. * g++.dg/parser/struct-1.C: New test. * g++.dg/parser/struct-2.C: New test. * g++.dg/parser/struct-3.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.184&r2=1.3892.2.185 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.157.2.46&r2=1.157.2.47 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.321&r2=1.3389.2.322 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-2.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/struct-3.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1
Fixed on mainline and for 3.4.4
Won't fix on the 3.3 branch.