aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-12-09 21:11:21 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-12-09 21:11:21 +0000
commit8f420307e03a391b8e4bcd57be36d8d6325c7638 (patch)
treebc6cf2a1adf2e08f2944731e840762fef0d4a29d /gcc/gimple-fold.c
parent6d1c2bd3ae36584af0b6d288569c845e86600bda (diff)
downloadgcc-8f420307e03a391b8e4bcd57be36d8d6325c7638.zip
gcc-8f420307e03a391b8e4bcd57be36d8d6325c7638.tar.gz
gcc-8f420307e03a391b8e4bcd57be36d8d6325c7638.tar.bz2
gimple-fold.c (gimple_fold_stmt_to_constant_1): Also check the TYPE_MODE to recognize useless pointer conversions.
* gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>: Also check the TYPE_MODE to recognize useless pointer conversions. From-SVN: r182178
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r--gcc/gimple-fold.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 5da9be3..91dd8fc 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -2517,8 +2517,10 @@ gimple_fold_stmt_to_constant_1 (gimple stmt, tree (*valueize) (tree))
if (CONVERT_EXPR_CODE_P (subcode)
&& POINTER_TYPE_P (TREE_TYPE (lhs))
&& POINTER_TYPE_P (TREE_TYPE (op0))
- && (TYPE_ADDR_SPACE (TREE_TYPE (lhs))
- == TYPE_ADDR_SPACE (TREE_TYPE (op0))))
+ && TYPE_ADDR_SPACE (TREE_TYPE (lhs))
+ == TYPE_ADDR_SPACE (TREE_TYPE (op0))
+ && TYPE_MODE (TREE_TYPE (lhs))
+ == TYPE_MODE (TREE_TYPE (op0)))
return op0;
return