This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/16023] New: [Mainline regression] C++ loop variables have wrong scope
- From: "martin at mpa-garching dot mpg dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Jun 2004 15:04:28 -0000
- Subject: [Bug c++/16023] New: [Mainline regression] C++ loop variables have wrong scope
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The code below should be valid C++, but current mainline g++ complains about
a redeclaration of "m". g++ 3.3 and 3.4 compile it without complaint.
--begin--
template<typename T> void foo ()
{
T cnt = 0;
for (int m=0; m<=10; ++m)
++cnt;
int m=0;
}
template void foo<int>();
--end--
~/tmp>g++ -v -c test.cc
Reading specs from /afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/specs
Configured with: /scratch/gcc/configure --quiet
--prefix=/afs/mpa/data/martin/ugcc --enable-languages=c++,f95
--with-gmp=/afs/mpa/data/martin/mygmp
Thread model: posix
gcc version 3.5.0 20040616 (experimental)
/afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/3.5.0/cc1plus -quiet -v
-D_GNU_SOURCE test.cc -quiet -dumpbase test.cc -mtune=pentiumpro -auxbase test
-version -o /tmp/cc3KL0ot.s
ignoring nonexistent directory
"/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/../../../../include/c++/3.5.0
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/../../../../include/c++/3.5.0/i686-pc-linux-gnu
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/../../../../include/c++/3.5.0/backward
/usr/local/include
/afs/mpa/data/martin/ugcc/include
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/3.5.0/include
/usr/include
End of search list.
GNU C++ version 3.5.0 20040616 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 3.5.0 20040616 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
test.cc: In function `void foo() [with T = int]':
test.cc:10: instantiated from here
test.cc:7: error: redeclaration of `int m'
test.cc:4: error: `int m' previously declared here
--
Summary: [Mainline regression] C++ loop variables have wrong
scope
Product: gcc
Version: 3.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: martin at mpa-garching dot mpg dot de
CC: gcc-bugs at gcc dot gnu dot org,martin at mpa-garching
dot mpg dot de
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16023