diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-08-12 18:05:43 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2008-08-12 18:05:43 +0000 |
commit | 7df52819c4aa29042c225189d31ec2961b94f56f (patch) | |
tree | dadd521bd788faebcdfbb1b321ea56646b6b71d0 /gcc/dojump.c | |
parent | 84b2206d9ac1fd2e24819de799088ac98d804ee5 (diff) |
PR middle-end/37014
* expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
and TRUTH_ORIF_EXPR.
* dojump.c (do_jump): Likewise.
* gcc.c-torture/compile/20080812-1.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@139029 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dojump.c')
-rw-r--r-- | gcc/dojump.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/dojump.c b/gcc/dojump.c index fb8d139b111..46aa4f2ebb8 100644 --- a/gcc/dojump.c +++ b/gcc/dojump.c @@ -304,8 +304,6 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label) break; } - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: case COMPOUND_EXPR: /* Lowered by gimplify.c. */ gcc_unreachable (); @@ -515,6 +513,7 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label) if (BRANCH_COST >= 4 || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1))) goto normal; + case TRUTH_ANDIF_EXPR: if (if_false_label == NULL_RTX) { drop_through_label = gen_label_rtx (); @@ -535,6 +534,7 @@ do_jump (tree exp, rtx if_false_label, rtx if_true_label) if (BRANCH_COST >= 4 || TREE_SIDE_EFFECTS (TREE_OPERAND (exp, 1))) goto normal; + case TRUTH_ORIF_EXPR: if (if_true_label == NULL_RTX) { drop_through_label = gen_label_rtx (); |