Bug in 6.x' C++ compiler
Mikhail Teterin
mi+mx at aldan.algebra.com
Wed Oct 11 17:33:00 UTC 2006
GCC would not fix the bug described in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29390
because the compiler is of an unsupported version (they only support 4.x now).
Yet, the problem is rather real and hits when the devel/icu port is built with
low optimization (-O1 or -O0).
Any chance, someone with interest in GCC internals and FreeBSD can find the
fix?
Simply compiling the loctest.ii, that is attached to the above bugzilla
report, is enough to reproduce the problem. Compiling with `-march=pentium4'
triggers the bug -- a bogus symbol is inserted:
% c++ -O0 -g -c -pipe -march=pentium4 loctest.ii
% nm locate.o | fgrep .LC
U .LC786
Compiling without the -march (or with -O2) does not insert the bogus symbol:
% c++ -O2 -g -c -pipe -march=pentium4 loctest.ii
% nm loctest.o | fgrep .LC
% c++ -O0 -g -c -pipe loctest.ii
% nm loctest.o | fgrep .LC
%
I'm seeing this with both 3.4.4 and 3.4.6 versions of GCC... Thanks!
-mi
More information about the freebsd-stable
mailing list