[Bug c++/16129] [3.4.1 regression] g++.old-deja/g++.eh/catch[35679]*.C

zack at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Jun 24 22:11:00 GMT 2004


------- Additional Comments From zack at gcc dot gnu dot org  2004-06-24 21:40 -------
Created an attachment (id=6623)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=6623&action=view)
preprocessed source for file being miscompiled

Compile this file as follows:

cc1plus -fpreprocessed tinfo.ii -quiet -dumpbase tinfo.cc -da -auxbase-strip
tinfo.o -g -g -O2 -O2 -O2 -Wall -W -Wwrite-strings -Wcast-qual -version
-fno-implicit-templates -fdiagnostics-show-location=once -ffunction-sections
-fdata-sections -fPIC -o tinfo.s

(a cross compiler to ia64-hp-hpux11.22 will do).  Then compare the .31.bbro and
.35.mach dumps.  You should see that in the former, insn 456 precedes insn 493,
but in the latter, insn 456 follows insn 493.  Since insn 493 reads from the
location written by insn 456, this is an invalid transformation.

The problem is believed to be a bad interaction between aliasing and inlining.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16129



More information about the Gcc-bugs mailing list