Commit 519c9806 by Mark Mitchell

call.c (build_conv): Don't use build1 for USER_CONV.

	* call.c (build_conv): Don't use build1 for USER_CONV.
	* pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.

From-SVN: r38688
parent 7ffcb17f
...@@ -605,8 +605,16 @@ build_conv (code, type, from) ...@@ -605,8 +605,16 @@ build_conv (code, type, from)
enum tree_code code; enum tree_code code;
tree type, from; tree type, from;
{ {
tree t = build1 (code, type, from); tree t;
int rank = ICS_STD_RANK (from); 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) switch (code)
{ {
case PTR_CONV: case PTR_CONV:
......
...@@ -6892,10 +6892,6 @@ tsubst_copy (t, args, complain, in_decl) ...@@ -6892,10 +6892,6 @@ tsubst_copy (t, args, complain, in_decl)
tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl)); tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl));
case INDIRECT_REF: case INDIRECT_REF:
case PREDECREMENT_EXPR:
case PREINCREMENT_EXPR:
case POSTDECREMENT_EXPR:
case POSTINCREMENT_EXPR:
case NEGATE_EXPR: case NEGATE_EXPR:
case TRUTH_NOT_EXPR: case TRUTH_NOT_EXPR:
case BIT_NOT_EXPR: case BIT_NOT_EXPR:
...@@ -6948,6 +6944,10 @@ tsubst_copy (t, args, complain, in_decl) ...@@ -6948,6 +6944,10 @@ tsubst_copy (t, args, complain, in_decl)
case SCOPE_REF: case SCOPE_REF:
case DOTSTAR_EXPR: case DOTSTAR_EXPR:
case MEMBER_REF: case MEMBER_REF:
case PREDECREMENT_EXPR:
case PREINCREMENT_EXPR:
case POSTDECREMENT_EXPR:
case POSTINCREMENT_EXPR:
return build_nt return build_nt
(code, tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl), (code, tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl),
tsubst_copy (TREE_OPERAND (t, 1), args, complain, in_decl)); tsubst_copy (TREE_OPERAND (t, 1), args, complain, in_decl));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment