diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67586d8..729e889 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-24 Andrew Haley <aph@cygnus.co.uk> + + * expr.c (do_store_flag): Don't crash if either side of a + comparison is error_mark_node. + 2000-10-24 Jakub Jelinek <jakub@redhat.com> * sibcall.c (purge_mem_unchanging_flag): New function. @@ -10133,6 +10133,11 @@ do_store_flag (exp, target, mode, only_cheap) arg0 = TREE_OPERAND (exp, 0); arg1 = TREE_OPERAND (exp, 1); + + /* Don't crash if the comparison was erroneous. */ + if (arg0 == error_mark_node || arg1 == error_mark_node) + return const0_rtx; + type = TREE_TYPE (arg0); operand_mode = TYPE_MODE (type); unsignedp = TREE_UNSIGNED (type); |