Commit 0ac76ad9 by Richard Henderson Committed by Richard Henderson

final.c (final): Do not abort when reg-stack introduces a new insn.

        * final.c (final): Do not abort when reg-stack introduces
        a new insn.

From-SVN: r34927
parent bfb9dc7f
2000-07-08 Richard Henderson <rth@cygnus.com>
* final.c (final): Do not abort when reg-stack introduces
a new insn.
2000-07-08 Zack Weinberg <zack@wolery.cumb.org> 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
* cpplib.h (struct cpp_name): Now struct cpp_string. * cpplib.h (struct cpp_name): Now struct cpp_string.
......
...@@ -2014,14 +2014,23 @@ final (first, file, optimize, prescan) ...@@ -2014,14 +2014,23 @@ final (first, file, optimize, prescan)
for (insn = NEXT_INSN (first); insn;) for (insn = NEXT_INSN (first); insn;)
{ {
#ifdef HAVE_ATTR_length #ifdef HAVE_ATTR_length
#ifdef ENABLE_CHECKING if (INSN_UID (insn) >= insn_lengths_max_uid)
{
#ifdef STACK_REGS
/* Irritatingly, the reg-stack pass is creating new instructions
and because of REG_DEAD note abuse it has to run after
shorten_branches. Fake address of -1 then. */
insn_current_address = -1;
#else
/* This can be triggered by bugs elsewhere in the compiler if /* This can be triggered by bugs elsewhere in the compiler if
new insns are created after init_insn_lengths is called. */ new insns are created after init_insn_lengths is called. */
if (INSN_UID (insn) >= insn_lengths_max_uid)
abort (); abort ();
#endif #endif
}
else
insn_current_address = insn_addresses[INSN_UID (insn)]; insn_current_address = insn_addresses[INSN_UID (insn)];
#endif #endif /* HAVE_ATTR_length */
insn = final_scan_insn (insn, file, optimize, prescan, 0); insn = final_scan_insn (insn, file, optimize, prescan, 0);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment