aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2009-07-01 11:50:12 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2009-07-01 11:50:12 +0000
commitce3aea3586776ef0f7a1cb4fd4db01ee472068c4 (patch)
tree594dec40197069e4143cbff49ccb32a6e5762715 /gcc
parentc29fe0c8bd7791edd60280ebb79880e97cb025c1 (diff)
downloadgcc-ce3aea3586776ef0f7a1cb4fd4db01ee472068c4.zip
gcc-ce3aea3586776ef0f7a1cb4fd4db01ee472068c4.tar.gz
gcc-ce3aea3586776ef0f7a1cb4fd4db01ee472068c4.tar.bz2
expr.c (expand_expr_real_1): Reinstate fallthrough to TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
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. From-SVN: r149136
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c7
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.
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. */