diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gcse.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cdc724b7cea..184b44d2afe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,10 @@ 2004-01-15 Richard Earnshaw <rearnsha@arm.com> + + PR optimization/13375 + * gcse.c (handle_avail_expr): Just return if the source is not a + single set. + +2004-01-15 Richard Earnshaw <rearnsha@arm.com> Daniel Jacobowitz <drow@mvista.com> * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case. diff --git a/gcc/gcse.c b/gcc/gcse.c index f3656c19d47..6053dffe833 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -3381,8 +3381,11 @@ handle_avail_expr (rtx insn, struct expr *expr) if (insn_computes_expr == NULL) return 0; expr_set = single_set (insn_computes_expr); + /* The set might be in a parallel with multiple sets; we could + probably handle that, but there's currently no easy way to find + the relevant sub-expression. */ if (!expr_set) - abort (); + return 0; found_setting = 0; use_src = 0; |