On Linux/x86, trunk revision 140155 is miscompiled. The following test timed out [hjl@gnu-33 gcc]$ cat /tmp/x.ii void foo (int a, int a) { } [hjl@gnu-33 gcc]$ ./xgcc -B./ -ansi -pedantic-errors -Wno-long-long -S /tmp/x.ii /tmp/x.ii:1: error: redefinition of ‘int a’ /tmp/x.ii:1: error: ‘int a’ previously declared here Ctrl-C [hjl@gnu-33 gcc]$ "make check" shows Executing on host: /export/gnu/import/svn/gcc-test/bld/gcc/testsuite/g++/../../g++ -B/export/gnu/import/svn/gcc-test/bld/gcc/testsuite/g++/../../ -nostdinc++ -I/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/libsupc++ -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/include/backward -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/testsuite/util -fmessage-length=0 -ansi -pedantic-errors -Wno-long-long -c -m32 -o warn4.o /export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.old-deja/g++.mike/warn4.C (timeout = 300) /export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.old-deja/g++.mike/warn4.C:2: error: redefinition of 'int a'^M /export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/g++.old-deja/g++.mike/warn4.C:2: error: 'int a' previously declared here^M WARNING: program timed out. compiler exited with status 1 Patch for PR 37377 seems to fix this.
As of revision 140333, this bug is still not fixed although patch for PR 37377 has been applied.
It is a C++ bug. A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01041.html
Subject: Bug 37450 Author: hjl Date: Wed Sep 17 17:57:24 2008 New Revision: 140425 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140425 Log: 2008-09-17 H.J. Lu <hongjiu.lu@intel.com> PR c++/37450 * name-lookup.c (pushdecl_maybe_friend): Don't return the old parameter for duplicate. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/name-lookup.c
Fixed.