aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-04-23 06:55:07 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-04-23 06:55:07 -0400
commita32793551e0ac9ebe3b0ea8c97dea9b6840aabf2 (patch)
tree1c2fdcfb5838892063b150fe4bab5db72c261e01 /gcc
parent550707f7e4c85d11b03510293626303d3395ebd4 (diff)
downloadgcc-a32793551e0ac9ebe3b0ea8c97dea9b6840aabf2.zip
gcc-a32793551e0ac9ebe3b0ea8c97dea9b6840aabf2.tar.gz
gcc-a32793551e0ac9ebe3b0ea8c97dea9b6840aabf2.tar.bz2
(fold...
(fold, case REALPART_EXPR, IMAGPART_EXPR): Avoid using build_{unary,binary}_op since the calling sequences depend on the front-end. From-SVN: r4194
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fold-const.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index d40e9c8..84e89c8 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -4440,14 +4440,11 @@ fold (expr)
else if (TREE_CODE (arg0) == COMPLEX_CST)
return TREE_REALPART (arg0);
else if (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR)
- return build_binary_op (TREE_CODE (arg0), type,
- build_unary_op (REALPART_EXPR,
- TREE_OPERAND (arg0, 0),
- 1),
- build_unary_op (REALPART_EXPR,
- TREE_OPERAND (arg0, 1),
- 1),
- 0);
+ return fold (build (TREE_CODE (arg0), type,
+ fold (build1 (REALPART_EXPR, type,
+ TREE_OPERAND (arg0, 0))),
+ fold (build1 (REALPART_EXPR,
+ type, TREE_OPERAND (arg0, 1)))));
return t;
case IMAGPART_EXPR:
@@ -4459,14 +4456,11 @@ fold (expr)
else if (TREE_CODE (arg0) == COMPLEX_CST)
return TREE_IMAGPART (arg0);
else if (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR)
- return build_binary_op (TREE_CODE (arg0), type,
- build_unary_op (IMAGPART_EXPR,
- TREE_OPERAND (arg0, 0),
- 1),
- build_unary_op (IMAGPART_EXPR,
- TREE_OPERAND (arg0, 1),
- 1),
- 0);
+ return fold (build (TREE_CODE (arg0), type,
+ fold (build1 (IMAGPART_EXPR, type,
+ TREE_OPERAND (arg0, 0))),
+ fold (build1 (IMAGPART_EXPR, type,
+ TREE_OPERAND (arg0, 1)))));
return t;
default: