From 9664860331e02d839e4cb38e750d7027846524d8 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Sun, 30 Mar 2008 14:56:28 +0000 Subject: re PR middle-end/31023 (Fold is agnostic of integer sub-types) 2008-03-30 Richard Guenther PR middle-end/31023 * fold-const.c (fold_sign_changed_comparison): Do leave conversions to base-types alone. From-SVN: r133731 --- gcc/fold-const.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/fold-const.c') diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 5d5d7cf..c420b79 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -6807,6 +6807,11 @@ fold_sign_changed_comparison (enum tree_code code, tree type, if (TYPE_PRECISION (inner_type) != TYPE_PRECISION (outer_type)) return NULL_TREE; + /* If the conversion is from an integral subtype to its basetype + leave it alone. */ + if (TREE_TYPE (inner_type) == outer_type) + return NULL_TREE; + if (TREE_CODE (arg1) != INTEGER_CST && !((TREE_CODE (arg1) == NOP_EXPR || TREE_CODE (arg1) == CONVERT_EXPR) -- cgit v1.1