Patch: Internal Error Using -O2

Dave Brolley
Fri Feb 5 14:25:00 GMT 1999


The attached patch fixes an internal compiler error which can occur
when using -O2.
The problem occurs (in this case) when the compiler realizes that a
C++ reference argument can't
live in a register and must be stored on the stack. At that time it
changes its location from REG to MEM and calls fixup_var_refs to fixup

all the insns which reference that location. In this case one such
insn was in the sequence associated with a C++ catch clause.
fixup_var_refs did not contain code to scan through the catch clauses,

so the insn was not fixed and was subsequently not recognized later.


More information about the Gcc-patches mailing list