mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 00:59:38 +08:00
parser.c (cp_parser_template_argument): Don't call make_unbound_class_template directly.
* parser.c (cp_parser_template_argument): Don't call make_unbound_class_template directly. (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from UNBOUND_CLASS_TEMPLATE tree node. From-SVN: r75356
This commit is contained in:
parent
86d7b5621f
commit
5b4acce124
@ -1,3 +1,11 @@
|
||||
2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/13094
|
||||
* parser.c (cp_parser_template_argument): Don't call
|
||||
make_unbound_class_template directly.
|
||||
(cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
|
||||
UNBOUND_CLASS_TEMPLATE tree node.
|
||||
|
||||
2004-01-02 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
PR target/12729
|
||||
|
@ -8169,12 +8169,13 @@ cp_parser_template_argument (cp_parser* parser)
|
||||
if (!cp_parser_error_occurred (parser))
|
||||
{
|
||||
/* Figure out what is being referred to. */
|
||||
argument = cp_parser_lookup_name_simple (parser, argument);
|
||||
if (template_p)
|
||||
argument = make_unbound_class_template (TREE_OPERAND (argument, 0),
|
||||
TREE_OPERAND (argument, 1),
|
||||
tf_error);
|
||||
else if (TREE_CODE (argument) != TEMPLATE_DECL)
|
||||
argument = cp_parser_lookup_name (parser, argument,
|
||||
/*is_type=*/false,
|
||||
/*is_template=*/template_p,
|
||||
/*is_namespace=*/false,
|
||||
/*check_dependency=*/true);
|
||||
if (TREE_CODE (argument) != TEMPLATE_DECL
|
||||
&& TREE_CODE (argument) != UNBOUND_CLASS_TEMPLATE)
|
||||
cp_parser_error (parser, "expected template-name");
|
||||
}
|
||||
if (cp_parser_parse_definitely (parser))
|
||||
@ -13347,9 +13348,9 @@ cp_parser_lookup_name (cp_parser *parser, tree name,
|
||||
name,
|
||||
/*complain=*/1));
|
||||
else if (is_template)
|
||||
decl = TYPE_NAME (make_unbound_class_template (parser->scope,
|
||||
name,
|
||||
/*complain=*/1));
|
||||
decl = make_unbound_class_template (parser->scope,
|
||||
name,
|
||||
/*complain=*/1);
|
||||
else
|
||||
decl = build_nt (SCOPE_REF, parser->scope, name);
|
||||
}
|
||||
@ -13428,6 +13429,7 @@ cp_parser_lookup_name (cp_parser *parser, tree name,
|
||||
my_friendly_assert (DECL_P (decl)
|
||||
|| TREE_CODE (decl) == OVERLOAD
|
||||
|| TREE_CODE (decl) == SCOPE_REF
|
||||
|| TREE_CODE (decl) == UNBOUND_CLASS_TEMPLATE
|
||||
|| BASELINK_P (decl),
|
||||
20000619);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user