aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-03-24 12:29:11 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-03-24 11:29:11 +0000
commit02484af985da5f2f56cf2f8aecb69f7d50848807 (patch)
tree420839c3baf4ce62bb9390453b158cc7001f3df3 /gcc/combine.c
parent941bc65971482ba8194d7ab1b3eb2514b481cc70 (diff)
downloadgcc-02484af985da5f2f56cf2f8aecb69f7d50848807.zip
gcc-02484af985da5f2f56cf2f8aecb69f7d50848807.tar.gz
gcc-02484af985da5f2f56cf2f8aecb69f7d50848807.tar.bz2
re PR target/10072 ([Sparc] internal compiler error: in trunc_int_for_mode, at explow.c:54)
PR target/10072 * combine.c (simplify_if_then_else): Check that the mode has MODE_INT class before applying the (OP Z (mult COND C2)) transformation. From-SVN: r64785
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index cd7261b..dd01706 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -4969,7 +4969,9 @@ simplify_if_then_else (x)
neither 1 or -1, but it isn't worth checking for. */
if ((STORE_FLAG_VALUE == 1 || STORE_FLAG_VALUE == -1)
- && comparison_p && mode != VOIDmode && ! side_effects_p (x))
+ && comparison_p
+ && GET_MODE_CLASS (mode) == MODE_INT
+ && ! side_effects_p (x))
{
rtx t = make_compound_operation (true_rtx, SET);
rtx f = make_compound_operation (false_rtx, SET);