From 7dbdd9835e56cf65b7bbf7e8e9f9fbc52776e431 Mon Sep 17 00:00:00 2001 From: bonzini Date: Wed, 1 Jul 2009 11:50:12 +0000 Subject: [PATCH] 2009-07-01 Paolo Bonzini * expr.c (expand_expr_real_1): Reinstate fallthrough to TRUTH_ANDIF_EXPR if do_store_flag returns NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149136 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ 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 + + * expr.c (expand_expr_real_1): Reinstate fallthrough to + TRUTH_ANDIF_EXPR if do_store_flag returns NULL. + 2009-07-01 Maciej W. Rozycki * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1. diff --git a/gcc/expr.c b/gcc/expr.c index d390b0a..b3cd2b1 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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. */ -- 2.7.4