re PR bootstrap/50018 (fixup_args_size_notes ICE breaks m68k-linux bootstrap)
authorRichard Henderson <rth@redhat.com>
Thu, 11 Aug 2011 15:09:30 +0000 (08:09 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 11 Aug 2011 15:09:30 +0000 (08:09 -0700)
PR bootstrap/50018
        * expr.c (fixup_args_size_notes): Accept and ignore normal calls.

From-SVN: r177669

gcc/ChangeLog
gcc/expr.c

index 6b7aff65d20ee43a0795eaa7c8d28d65d9ab7862..e7ed90d3d52d7ef114649f9b58f2b15fd31649a2 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-11  Richard Henderson  <rth@redhat.com>
+
+       PR bootstrap/50018
+       * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
+
 2011-08-11  Richard Guenther  <rguenther@suse.de>
 
        * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
index f0b76e187b7725649785896cdb41c479100e11d6..997eb3e022326ac40422a5b2b760792a26b2df20 100644 (file)
@@ -3567,8 +3567,10 @@ fixup_args_size_notes (rtx prev, rtx last, int end_args_size)
       /* Look for a call_pop pattern.  */
       if (CALL_P (insn))
        {
-         /* We're not supposed to see non-pop call patterns here.  */
-         gcc_assert (GET_CODE (pat) == PARALLEL);
+          /* We have to allow non-call_pop patterns for the case
+            of emit_single_push_insn of a TLS address.  */
+         if (GET_CODE (pat) != PARALLEL)
+           continue;
 
          /* All call_pop have a stack pointer adjust in the parallel.
             The call itself is always first, and the stack adjust is
@@ -3583,7 +3585,8 @@ fixup_args_size_notes (rtx prev, rtx last, int end_args_size)
                break;
            }
          /* We'd better have found the stack pointer adjust.  */
-         gcc_assert (i > 0);
+         if (i == 0)
+           continue;
          /* Fall through to process the extracted SET and DEST
             as if it was a standalone insn.  */
        }