diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-01-12 17:47:54 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-01-12 17:47:54 -0500 |
commit | a7c5971afba533de4a1c555f441ce2f4dee55039 (patch) | |
tree | 071eaef5e834fb6bf22a9931d2cd908d43b0c252 | |
parent | 1b6f3c1c6ab764bf52580916f2811ac97774f3f2 (diff) | |
download | gcc-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.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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 |