OSDN Git Service

PR c/7128
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Nov 2002 00:22:57 +0000 (00:22 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Nov 2002 00:22:57 +0000 (00:22 +0000)
* c-typeck.c (c_expand_asm_operands): Defend against
error_mark_nodes in the output argument to avoid ICE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58777 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-typeck.c

index 148d506..1d44953 100644 (file)
@@ -1,3 +1,9 @@
+2002-11-03  Roger Sayle  <roger@eyesopen.com>
+
+       PR c/7128
+       * c-typeck.c (c_expand_asm_operands): Defend against
+       error_mark_nodes in the output argument to avoid ICE.
+
 2002-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR middle-end/8408
index 0915b10..db6d420 100644 (file)
@@ -6957,7 +6957,11 @@ c_expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
 
   /* Record the contents of OUTPUTS before it is modified.  */
   for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++)
-    o[i] = TREE_VALUE (tail);
+    {
+      o[i] = TREE_VALUE (tail);
+      if (o[i] == error_mark_node)
+       return;
+    }
 
   /* Generate the ASM_OPERANDS insn; store into the TREE_VALUEs of
      OUTPUTS some trees for where the values were actually stored.  */