aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/lex.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/lex.c')
-rw-r--r--gcc/cp/lex.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index f641dc6..acff58f 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -228,8 +228,15 @@ tree
make_call_declarator (target, parms, cv_qualifiers, exception_specification)
tree target, parms, cv_qualifiers, exception_specification;
{
- target = build_parse_node (CALL_EXPR, target, parms, cv_qualifiers);
- TREE_TYPE (target) = exception_specification;
+ target = build_parse_node (CALL_EXPR, target,
+ /* Both build_parse_node and
+ decl_tree_cons build on the
+ temp_decl_obstack. */
+ decl_tree_cons (parms, cv_qualifiers, NULL_TREE),
+ /* The third operand is really RTL. We
+ shouldn't put anything there. */
+ NULL_TREE);
+ CALL_DECLARATOR_EXCEPTION_SPEC (target) = exception_specification;
return target;
}
@@ -237,8 +244,8 @@ void
set_quals_and_spec (call_declarator, cv_qualifiers, exception_specification)
tree call_declarator, cv_qualifiers, exception_specification;
{
- TREE_OPERAND (call_declarator, 2) = cv_qualifiers;
- TREE_TYPE (call_declarator) = exception_specification;
+ CALL_DECLARATOR_QUALS (call_declarator) = cv_qualifiers;
+ CALL_DECLARATOR_EXCEPTION_SPEC (call_declarator) = exception_specification;
}
/* Build names and nodes for overloaded operators. */