| Bug #14995 | CC: ERROR File = listener.cc, Line = 187 "i" has already been declared in the c | ||
|---|---|---|---|
| Submitted: | 16 Nov 2005 19:39 | Modified: | 18 Aug 2006 1:43 |
| Reporter: | Joerg Behrens | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | Mysql-5.0.15 | OS: | Other (IRIX64 6.5.28) |
| Assigned to: | Hartmut Holzgraefe | CPU Architecture: | Any |
[16 Nov 2005 23:02]
Hartmut Holzgraefe
while newer revisions of the c++ standard define that variables declared within for(...;...;...) are local to the loop it is still not considered portable to rely on it
[16 Nov 2005 23:31]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/32337
[14 Mar 2006 10:14]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/3816
[14 Mar 2006 18:59]
Paul DuBois
I added a note to the coding guidelines.
[22 Apr 2006 14:38]
Joerg Behrens
Well, the *same* errors are in the current 5.0.20a.
cc-1101 CC: ERROR File = listener.cc, Line = 179
"i" has already been declared in the current scope.
for (int i= 0; i < num_sockets; i++)
^
cc-1548 CC: WARNING File = listener.cc, Line = 112
The transfer of control bypasses...
... the initialization of variable "i" (declared at line 120).
... the initialization of variable "i" (declared at line 179).
goto err;
^
cc-1101 CC: ERROR File = listener.cc, Line = 192
"i" has already been declared in the current scope.
for (int i= 0; i < num_sockets; i++)
^
2 errors detected in the compilation of "listener.cc".
regards
Joerg
[23 Apr 2006 1:04]
Kent Boortz
I just verified that on IRIX 6.5 with MIPSpro Compilers: Version 7.41 the 5.0.20a source can be compiled if configured with CC=cc \ CXX=CC \ CFLAGS="-O3 -c99 -OPT:Olimit=0" \ CXXFLAGS="-O3 -c99 -OPT:Olimit=0 -LANG:exceptions=OFF \ -LANG:std=ON -LANG:libc_in_namespace_std=OFF" \ ./configure--prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data \ --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex \ --enable-thread-safe-client --enable-local-infile --disable-shared \ --with-zlib-dir=bundled --with-big-tables --with-readline \ --with-archive-storage-engine --with-innodb Now, the resulting binary doesn't work but that is another story, bug#13711.
[24 Apr 2006 6:31]
Valeriy Kravchuk
Joerg, Please, try to compile 5.0.20a with options suggested in Kent's last comment. If you'll have no error messages like before, we can close this bug report, I think.
[25 Apr 2006 11:52]
Joerg Behrens
Ok.. it compiles. But i cant see any different flag expect the issue that i have used some exports foo=bar first. regards Joerg
[5 Aug 2006 11:42]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/10068 ChangeSet@1.2242, 2006-08-05 13:41:22+02:00, hartmut@mysql.com +1 -0 relying on loop counter variables being local to the loop body if declared in the 'for' statement is not portable, some compilers still don't implement this ANSI C++ specification (Bug #14995)
[17 Aug 2006 16:23]
Chad MILLER
Available in 5.0.25 and soon in 5.1.12-beta.
[18 Aug 2006 1:43]
Paul DuBois
Compilation fix. No changelog entry needed.

Description: When compiling mysql-5.0.15 the following error happends. gmake[3]: Entering directory `/raids/strip2/MIPS/mysql-5.0.15/server-tools/instance-manager' CC -DMYSQL_INSTANCE_MANAGER -DMYSQL_SERVER -I. -I. -I../.. -I/usr/nekoware/include -I../../include -I/usr/nekoware/include -I../../include -I/usr/nekoware/include -O3 -DDBUG_OFF -O3 -mips4 -I/usr/nekoware/include -OPT:Olimit=0:roundoff=3 -TARG:platform=IP27:proc=r10000 -LANG:exceptions=OFF -LANG:std=OFF -LANG:libc_in_namespace_std=OFF -D_BOOL -c -o listener.o listener.cc cc-1101 CC: ERROR File = listener.cc, Line = 174 "i" has already been declared in the current scope. for (int i= 0; i < num_sockets; i++) ^ cc-1101 CC: ERROR File = listener.cc, Line = 187 "i" has already been declared in the current scope. for (int i= 0; i < num_sockets; i++) ^ 2 errors detected in the compilation of "listener.cc". gmake[3]: *** [listener.o] Fehler 2 gmake[3]: Leaving directory `/raids/strip2/MIPS/mysql-5.0.15/server-tools/instance-manager' gmake[2]: *** [all-recursive] Fehler 1 gmake[2]: Leaving directory `/raids/strip2/MIPS/mysql-5.0.15/server-tools' gmake[1]: *** [all-recursive] Fehler 1 gmake[1]: Leaving directory `/raids/strip2/MIPS/mysql-5.0.15' regards Joerg Behrens How to repeat: Comiling the stable mysql-5.0.15 source in IRIX 6.5.28 with latest MIPS CC 7.4.3 compilier.