summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-typeck.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 148d5066aef..1d44953be65 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 0915b1091c8..db6d420cc6e 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -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. */
OpenPOWER on IntegriCloud