aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-04-23 06:56:52 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-04-23 06:56:52 -0400
commit95e7890978d481b36f8eee2ae124b79b36458ef5 (patch)
tree5ad2d882cfd3558d595df83fee99314101e583d7 /gcc
parentda120c2f90a1e4569629883091c842b01b34e103 (diff)
downloadgcc-95e7890978d481b36f8eee2ae124b79b36458ef5.zip
gcc-95e7890978d481b36f8eee2ae124b79b36458ef5.tar.gz
gcc-95e7890978d481b36f8eee2ae124b79b36458ef5.tar.bz2
(convert_to_integer...
(convert_to_integer, convert_to_complex): Avoid using build_{unary,binary}_op since the calling sequences depend on the front-end. From-SVN: r4196
Diffstat (limited to 'gcc')
-rw-r--r--gcc/convert.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/gcc/convert.c b/gcc/convert.c
index 62bcaf2..7261e1b 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -269,10 +269,10 @@ convert_to_integer (type, expr)
|| TREE_UNSIGNED (TREE_TYPE (arg1)))
? unsigned_type (typex) : signed_type (typex));
return convert (type,
- build_binary_op (ex_form,
- convert (typex, arg0),
- convert (typex, arg1),
- 0));
+ fold (build (ex_form, typex,
+ convert (typex, arg0),
+ convert (typex, arg1),
+ 0)));
}
}
}
@@ -300,9 +300,9 @@ convert_to_integer (type, expr)
typex = (TREE_UNSIGNED (TREE_TYPE (expr))
? unsigned_type (typex) : signed_type (typex));
return convert (type,
- build_unary_op (ex_form,
- convert (typex, TREE_OPERAND (expr, 0)),
- 1));
+ fold (build1 (ex_form, typex,
+ convert (typex,
+ TREE_OPERAND (expr, 0)))));
}
}
@@ -411,9 +411,13 @@ convert_to_complex (type, expr)
return fold (build (COMPLEX_EXPR,
type,
convert (subtype,
- build_unary_op (REALPART_EXPR, expr, 1)),
+ fold (build1 (REALPART_EXPR,
+ TREE_TYPE (TREE_TYPE (expr)),
+ expr))),
convert (subtype,
- build_unary_op (IMAGPART_EXPR, expr, 1))));
+ fold (build1 (IMAGPART_EXPR,
+ TREE_TYPE (TREE_TYPE (expr)),
+ expr)))));
}
}