aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/call.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/call.c')
-rw-r--r--gcc/cp/call.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 3c1f9aa..0c08d18 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -605,8 +605,16 @@ build_conv (code, type, from)
enum tree_code code;
tree type, from;
{
- tree t = build1 (code, type, from);
+ tree t;
int rank = ICS_STD_RANK (from);
+
+ /* We can't use buidl1 here because CODE could be USER_CONV, which
+ takes two arguments. In that case, the caller is responsible for
+ filling in the second argument. */
+ t = make_node (code);
+ TREE_TYPE (t) = type;
+ TREE_OPERAND (t, 0) = from;
+
switch (code)
{
case PTR_CONV: