aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-01-12 17:47:54 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-01-12 17:47:54 -0500
commita7c5971afba533de4a1c555f441ce2f4dee55039 (patch)
tree071eaef5e834fb6bf22a9931d2cd908d43b0c252
parent1b6f3c1c6ab764bf52580916f2811ac97774f3f2 (diff)
downloadgcc-a7c5971afba533de4a1c555f441ce2f4dee55039.zip
gcc-a7c5971afba533de4a1c555f441ce2f4dee55039.tar.gz
gcc-a7c5971afba533de4a1c555f441ce2f4dee55039.tar.bz2
(compare_from_rtx): Allow simplify_relational_operation to fail.
From-SVN: r3204
-rw-r--r--gcc/expr.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 990da71..090ec29 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -7109,11 +7109,13 @@ compare_from_rtx (op0, op1, code, unsignedp, mode, size, align)
rtx size;
int align;
{
+ rtx tem;
+
/* If one operand is constant, make it the second one. */
if (GET_CODE (op0) == CONST_INT || GET_CODE (op0) == CONST_DOUBLE)
{
- rtx tem = op0;
+ tem = op0;
op0 = op1;
op1 = tem;
code = swap_condition (code);
@@ -7127,8 +7129,9 @@ compare_from_rtx (op0, op1, code, unsignedp, mode, size, align)
do_pending_stack_adjust ();
- if (GET_CODE (op0) == CONST_INT && GET_CODE (op1) == CONST_INT)
- return simplify_relational_operation (code, mode, op0, op1);
+ if (GET_CODE (op0) == CONST_INT && GET_CODE (op1) == CONST_INT
+ && (tem = simplify_relational_operation (code, mode, op0, op1)) != 0)
+ return tem;
#if 0
/* There's no need to do this now that combine.c can eliminate lots of