diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b58daf..5e0e00d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-07-01 Paolo Bonzini <bonzini@gnu.org> + + * expr.c (expand_expr_real_1): Reinstate fallthrough to + TRUTH_ANDIF_EXPR if do_store_flag returns NULL. + 2009-07-01 Maciej W. Rozycki <macro@linux-mips.org> * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1. @@ -9109,8 +9109,11 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, temp = do_store_flag (exp, modifier != EXPAND_STACK_PARM ? target : NULL_RTX, tmode != VOIDmode ? tmode : mode); - gcc_assert (temp); - return temp; + if (temp) + return temp; + + /* Use a compare and a jump for BLKmode comparisons, or for function + type comparisons is HAVE_canonicalize_funcptr_for_compare. */ /* Although TRUTH_{AND,OR}IF_EXPR aren't present in GIMPLE, they are occassionally created by folding during expansion. */ |