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)

Reply via email to