Commit f6a90948 authored by rth's avatar rth
Browse files

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

        a new insn.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34927 138bc75d-0d04-0410-961f-82ee72b054a4
parent 76faa4c0
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>
 
* cpplib.h (struct cpp_name): Now struct cpp_string.
......
......@@ -2014,14 +2014,23 @@ final (first, file, optimize, prescan)
for (insn = NEXT_INSN (first); insn;)
{
#ifdef HAVE_ATTR_length
#ifdef ENABLE_CHECKING
/* This can be triggered by bugs elsewhere in the compiler if
new insns are created after init_insn_lengths is called. */
if (INSN_UID (insn) >= insn_lengths_max_uid)
abort ();
#endif
insn_current_address = insn_addresses[INSN_UID (insn)];
{
#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
new insns are created after init_insn_lengths is called. */
abort ();
#endif
}
else
insn_current_address = insn_addresses[INSN_UID (insn)];
#endif /* HAVE_ATTR_length */
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