From 21403f14b292fcf53cc270ce42c1bd2517f40adb Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 13 Jun 1995 18:32:39 -0400 Subject: [PATCH] (fold): When converting a COND_EXPR to an ABS_EXPR, get the types right for ABS_EXPR to work. From-SVN: r9939 --- gcc/fold-const.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/fold-const.c b/gcc/fold-const.c index e7d313657d9..73ec234e720 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -4854,12 +4854,16 @@ fold (expr) case GE_EXPR: case GT_EXPR: return pedantic_non_lvalue - (fold (build1 (ABS_EXPR, type, arg1))); + (convert (type, fold (build1 (ABS_EXPR, + TREE_TYPE (arg1), arg1)))); case LE_EXPR: case LT_EXPR: return pedantic_non_lvalue (fold (build1 (NEGATE_EXPR, type, - fold (build1 (ABS_EXPR, type, arg1))))); + convert (type, + fold (build1 (ABS_EXPR, + TREE_TYPE (arg1), + arg1)))))); } /* If this is A != 0 ? A : 0, this is simply A. For ==, it is -- 2.30.2