http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48214
Uros Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2011.03.21 10:52:19
AssignedTo|unassigned at gcc dot |ubizjak at gmail dot com
|gnu.org |
Target Milestone|--- |4.7.0
Ever Confirmed|0 |1
--- Comment #3 from Uros Bizjak <ubizjak at gmail dot com> 2011-03-21 10:52:19
UTC ---
Thanks, following patch fixes bootstrap for me:
Index: alpha.c
===================================================================
--- alpha.c (revision 171208)
+++ alpha.c (working copy)
@@ -9644,10 +9644,20 @@ alpha_pad_noreturn (void)
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{
- if (!CALL_P (insn)
- || !find_reg_note (insn, REG_NORETURN, NULL_RTX))
+ if (! (CALL_P (insn)
+ && find_reg_note (insn, REG_NORETURN, NULL_RTX)))
continue;
+ /* Make sure we do not split a call and its corresponding
+ CALL_ARG_LOCATION note. */
+ if (CALL_P (insn))
+ {
+ next = NEXT_INSN (insn);
+ if (next && NOTE_P (next)
+ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
+ insn = next;
+ }
+
next = next_active_insn (insn);
if (next)