+2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
+
+ * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
+ explicit TEMPLATE_ID_EXPR args.
+ (build_expr_from_tree, case CALL_EXPR): Likewise.
+
2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
* decl.c (check_tag_decl): Diagnose typename's which don't
if (TREE_CODE (TREE_OPERAND (t, 0)) == SCOPE_REF)
{
tree ref = TREE_OPERAND (t, 0);
+ tree name = TREE_OPERAND (ref, 1);
+
+ if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
+ name = build_nt (TEMPLATE_ID_EXPR,
+ TREE_OPERAND (name, 0),
+ build_expr_from_tree (TREE_OPERAND (name, 1)));
+
return build_scoped_method_call
(build_expr_from_tree (TREE_OPERAND (t, 1)),
build_expr_from_tree (TREE_OPERAND (ref, 0)),
- TREE_OPERAND (ref, 1),
+ name,
build_expr_from_tree (TREE_OPERAND (t, 2)));
}
else
if (TREE_CODE (TREE_OPERAND (t, 0)) == SCOPE_REF)
{
tree ref = TREE_OPERAND (t, 0);
+ tree name = TREE_OPERAND (ref, 1);
+
+ if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
+ name = build_nt (TEMPLATE_ID_EXPR,
+ TREE_OPERAND (name, 0),
+ build_expr_from_tree (TREE_OPERAND (name, 1)));
+
return build_member_call
(build_expr_from_tree (TREE_OPERAND (ref, 0)),
- TREE_OPERAND (ref, 1),
+ name,
build_expr_from_tree (TREE_OPERAND (t, 1)));
}
else