This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Graham <grahams@rcp.co.uk>] Re: RTL type checking
- To: egcs-patches at egcs dot cygnus dot com
- Subject: Re: [Graham <grahams@rcp.co.uk>] Re: RTL type checking
- From: Andrew Macleod <amacleod at cygnus dot com>
- Date: Wed, 1 Sep 1999 13:29:34 -0700
>> As you reported bootstrap fails in gcc/except.c when compiling
>> the C++ support routines in libgcc2.c. The failure occurs
>> in expand_fixup_region_end on the following statement.
>>
>> dont_issue = ((INSN_UID (node->entry->outer_context) == 0)
>> && (ehstack.top->entry != node->entry));
>>
>> This is because outer_context is a SYMBOL_REF and not a CODE_LABEL.
>>
>> I think the code needs to be aware of the flag_new_exceptions flag
>> because when this is enabled then outer_context is always a
>> "SYMBOL_REF" and when disabled is always is a "CODE_LABEL".
>>
>> I think the most obvious fix would the following and also handles
>> the other suspect use of INSN_UID() in this routine. It looks very
>> much like this block of code got missed when the flag_new_exceptions
>> were added.
>>
>> if (flag_new_exceptions)
>> dont_issue = 0;
>> else
>> dont_issue = ((INSN_UID (node->entry->outer_context) == 0)
>> && (ehstack.top->entry != node->entry));
>>
This looks correct to me, must have been sleepy and missed it :-)
Andrew