Hello!

Attached patch fixes recent bootstrap failure on alpha-pc-linux-gnu in
in dwarf2out_var_location, at dwarf2out.c:21983.

2011-03-21  Uros Bizjak  <ubiz...@gmail.com>

        * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
        between a call and its CALL_ARG_LOCATION note.

Bootstrapped and regression tested on alphaev68-pc-linux-gnu. OK for
mainline SVN?

Uros.
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