As a user reported in <http://gcc.gnu.org/ml/gcc-bugs/2003-03/msg01836.html> With GNU C++ version 3.2.3 20030329 (prerelease) [gb@hp6 gcc]$ ./cc1plus ~/vrac/parens3.C int main() /home/gb/vrac/parens3.C:5: internal error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. With GNU C++ version 3.4 20030329 (experimental) [gb@hp6 gcc]$ ./cc1plus ~/vrac/parens3.C int main() /home/gb/vrac/parens3.C:5: error: expected identifier /home/gb/vrac/parens3.C:5: internal compiler error: tree check: expected identifier_node, have error_mark in lookup_label, at cp/decl.c:4770 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. This is a regression from gcc version 2.95.4 20011002 (Debian prerelease) gcc version 2.96 20000731 (Mandrake Linux 9.1 2.96-0.82mdk, aka 2.96-RH 110) Also fails with 3.0.4 Release: GNU C++ version 3.2.3 20030329 (prerelease) Environment: i686-pc-linux-gnu How-To-Repeat: /* { dg-do compile } */ int main(void) { char x, y; if ('A' == x) && ('B' == y)) { } /* { error "parse error" } */ if (x == 'A') && (y == 'B')) { } /* { error "parse error" } */ }
Fix: Fixed in GCC 3.3 with: http://gcc.gnu.org/ml/gcc-patches/2003-03/msg02565.html Fixed in GCC 3.4 with: http://gcc.gnu.org/ml/gcc-patches/2003-03/msg02588.html
State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed. A regression on all active branches.
Responsible-Changed-From-To: unassigned->mmitchel Responsible-Changed-Why: Working on a fix.
From: mmitchel@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: c++/10278 Date: 31 Mar 2003 20:00:29 -0000 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_3-branch Changes by: mmitchel@gcc.gnu.org 2003-03-31 20:00:28 Modified files: gcc/cp : ChangeLog spew.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/parse: crash2.C Log message: PR c++/10278 * spew.c (yyerror): Avoid crashing at all costs. PR c++/10278 * g++.dg/parse/crash2.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.3076.2.102&r2=1.3076.2.103 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/spew.c.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.76.2.1&r2=1.76.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.2261.2.130&r2=1.2261.2.131 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/crash2.C.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=NONE&r2=1.1.2.1
From: mmitchel@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: c++/10278 Date: 31 Mar 2003 21:42:48 -0000 CVSROOT: /cvs/gcc Module name: gcc Changes by: mmitchel@gcc.gnu.org 2003-03-31 21:42:47 Modified files: gcc : ChangeLog c-common.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/parse: crash2.C Log message: PR c++/10278 * c-common.c (finish_label_address_expr): Handle the error_mark_node. PR c++/10278 * g++.dg/parse/crash2.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.17276&r2=1.17277 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.c.diff?cvsroot=gcc&r1=1.406&r2=1.407 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2562&r2=1.2563 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/crash2.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
State-Changed-From-To: analyzed->closed State-Changed-Why: Fixed for 3.3 and mainline.