summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-19 00:30:47 +0000
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-19 00:30:47 +0000
commiteb381097778f0f8d2a4b0f9bd33fabaedd5f2152 (patch)
treebeee2e7571eb302362386c8264bf2c958e486978
parentd90c6532442235705c5f1741c9f8eb7d1ea248c8 (diff)
downloadppe42-gcc-eb381097778f0f8d2a4b0f9bd33fabaedd5f2152.tar.gz
ppe42-gcc-eb381097778f0f8d2a4b0f9bd33fabaedd5f2152.zip
* fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
VIEW_CONVERT_EXPR to the same type as it's operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120945 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fold-const.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 99a58708cee..c2e1f701d0c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-18 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
+ VIEW_CONVERT_EXPR to the same type as it's operand.
+
2007-01-18 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 2ae560fa3bd..5588c37a7e3 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -7573,6 +7573,8 @@ fold_unary (enum tree_code code, tree type, tree op0)
return tem ? tem : NULL_TREE;
case VIEW_CONVERT_EXPR:
+ if (TREE_TYPE (op0) == type)
+ return op0;
if (TREE_CODE (op0) == VIEW_CONVERT_EXPR)
return fold_build1 (VIEW_CONVERT_EXPR, type, TREE_OPERAND (op0, 0));
return fold_view_convert_expr (type, op0);
OpenPOWER on IntegriCloud