This short code snippet fails to compile. Worked in 3.3. As far as I can tell, yn is not a reserved word. -------------------- enum yn {Y, N}; enum yn x = Y; -------------------- g++ -v -c x.cc Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/specs Configured with: ../gcc-3.4.0/configure --enable-languafes=c,c++ Thread model: posix gcc version 3.4.0 /usr/local/libexec/gcc/i686-pc-linux-gnu/3.4.0/cc1plus -quiet -v -D_GNU_SOURCE x.cc -quiet -dumpbase x.cc -mtune=pentiumpro -auxbase x -version -o /tmp/cccljUxr.s ignoring nonexistent directory "NONE/include" ignoring nonexistent directory "/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0 /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/i686-pc-linux-gnu /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/../../../../include/c++/3.4.0/backward /usr/local/include /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.0/include /usr/include End of search list. GNU C++ version 3.4.0 (i686-pc-linux-gnu) compiled by GNU C version 3.4.0. GGC heuristics: --param ggc-min-expand=45 --param ggc-min-heapsize=29906 x.cc:2: error: use of enum `yn' without previous declaration x.cc:2: error: invalid type in declaration before '=' token $ uname -a Linux yoda 2.4.18-18.8.0 #1 Wed Nov 13 22:52:09 EST 2002 i686 athlon i386 GNU/Linux
Confirmed, a regression. Mark I feel that this is major parser bug which should be fixed for 3.4.1.
No, yn is one of the Bessel function functions in C99 (do 'man yn'). The is a duplicate of another bug involving j1, which I'm going to look up next. W.
That would be PR 14432 but since my 3.5.0 build was from last night this is not fixed.
Right, I found PR 14432 as well. However, my 3.4 build compiles that one correctly, while it still fails on this PR. Mark, do you have an idea what is going on? This just seems too close to 14432 to be a coincidence... W.
Yes, we need to fix this for 3.4.1.
Working on a fix.
Subject: Bug 15862 CVSROOT: /cvs/gcc Module name: gcc Changes by: mmitchel@gcc.gnu.org 2004-06-11 18:14:52 Modified files: gcc/cp : ChangeLog name-lookup.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/parse: enum1.C Log message: PR c++/15862 * name-lookup.c (unqualified_namespace_lookup): Do not ignore type bindings for undeclared built-ins. PR c++/15862 * g++.dg/parse/enum1.C: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4092&r2=1.4093 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcc&r1=1.57&r2=1.58 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3842&r2=1.3843 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/enum1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
Subject: Bug 15862 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: mmitchel@gcc.gnu.org 2004-06-11 18:18:46 Modified files: gcc/testsuite : ChangeLog gcc/cp : ChangeLog name-lookup.c Added files: gcc/testsuite/g++.dg/parse: enum1.C Log message: PR c++/15862 * name-lookup.c (unqualified_namespace_lookup): Do not ignore type bindings for undeclared built-ins. PR c++/15862 * g++.dg/parse/enum1.C: New test. Patches: 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.204&r2=1.3389.2.205 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.121&r2=1.3892.2.122 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.14&r2=1.34.2.15 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/enum1.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1
Fixed in GCC 3.4.1.
*** Bug 21713 has been marked as a duplicate of this bug. ***