-O3 bug
Carlo Wood
carlo@alinoe.com
Thu Jun 29 11:20:00 GMT 2000
The following code compiles fine with -O2 (and less)
but fails with -O3:
--------------------
#include <iostream>
#include <netinet/in.h>
void foo(unsigned short int s)
{
cout << ntohs(s);
}
int main(void)
{
foo(1);
return 0;
}
--------------------
~/c++/libcw/src/gcc.bugs>g++-cvs -v -O3 -save-temps 20000629.cc
Reading specs from /usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000402 (experimental)
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/cpp -lang-c++ -v -iprefix /usr/local/bin/../lib/gcc-lib/i686-pc-linux-gnu/2.96/ -D__GNUC_
_=2 -D__GNUG__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__cplusplus -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix
-D__linux -Asystem(posix) -D__EXCEPTIONS -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_pentiumpro__ 2000062
9.cc 20000629.ii
GNU CPP version 2.96 20000402 (experimental) (cpplib)
(i386 Linux/ELF)
ignoring nonexistent directory `/usr/local/include/g++-3'
ignoring nonexistent directory `/usr/local/lib/gcc-lib/i686-pc-linux-gnu/2.96/include'
ignoring nonexistent directory `/usr/local/i686-pc-linux-gnu/include'
#include "..." search starts here:
#include <...> search starts here:
/usr/local/egcs/include/g++-3
/usr/local/egcs/include
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/include
/usr/local/egcs/i686-pc-linux-gnu/include
/usr/include
End of search list.
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus 20000629.ii -quiet -dumpbase 20000629.cc -O3 -version -o 20000629.s
GNU C++ version 2.96 20000402 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816/Linux (release).
/usr/local/egcs/include/g++-3/iostream.h: In function `int main ()':
/usr/local/egcs/include/g++-3/iostream.h:6: non-lvalue in assignment
>rpm -qf /usr/include/netinet/in.h
glibc-devel-2.1.2-11
>uname -a
Linux jolan 2.4.0-test1 #8 Thu Jun 29 01:38:20 CEST 2000 i686 unknown
I will attach a gzipped 20000629.ii.gz
You should be able to reproduce this with:
>gunzip 20000629.ii.gz
>/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/2.96/cc1plus 20000629.ii -quiet -dumpbase 20000629.cc -O3 -version -o 20000629.s
GNU C++ version 2.96 20000402 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 2.95.1 19990816/Linux (release).
/usr/local/egcs/include/g++-3/iostream.h: In function `int main ()':
/usr/local/egcs/include/g++-3/iostream.h:6: non-lvalue in assignment
Well, why am I telling you that :*) *blush*
Regards,
--
Carlo Wood <carlo@alinoe.com> -=- Jesus Loves you -=-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20000629.ii.gz
Type: application/x-gzip
Size: 9315 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20000629/6adc57ee/attachment.bin>
More information about the Gcc-bugs
mailing list