Commit 74cd8397 by Jason Merrill

pt.c (check_explicit_specialization): Complain about using a template-id for a non-specialization.

	* pt.c (check_explicit_specialization): Complain about using a
	template-id for a non-specialization.

Fri Nov 28 01:56:35 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

        * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.

From-SVN: r16818
parent 6a0d3671
Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (check_explicit_specialization): Complain about using a
template-id for a non-specialization.
Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
* error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
* typeck.c (build_const_cast): Handle references here instead of
......
......@@ -776,6 +776,24 @@ dump_decl (t, v)
}
break;
case TEMPLATE_ID_EXPR:
{
tree args;
dump_type (TREE_OPERAND (t, 0), v);
OB_PUTC ('<');
for (args = TREE_OPERAND (t, 1); args; args = TREE_CHAIN (args))
{
if (TREE_CODE_CLASS (TREE_CODE (TREE_VALUE (args))) == 't')
dump_type (TREE_VALUE (args), 0);
else
dump_expr (TREE_VALUE (args), 0);
if (TREE_CHAIN (args))
OB_PUTC2 (',', ' ');
}
OB_PUTC ('>');
}
break;
case LABEL_DECL:
OB_PUTID (DECL_NAME (t));
break;
......
......@@ -496,12 +496,19 @@ check_explicit_specialization (declarator, decl, template_count, flags)
&& !processing_explicit_specialization (template_count)
&& !is_friend)
{
if (!have_def)
if (!have_def && ! template_header_count)
/* This is not an explicit specialization. It must be
an explicit instantiation. */
return 2;
else if (template_header_count > template_count
&& !processing_specialization)
{
cp_error ("template-id `%D' in declaration of primary template",
declarator);
return 0;
}
else if (pedantic)
pedwarn ("Explicit specialization not preceeded by `template <>'");
pedwarn ("explicit specialization not preceeded by `template <>'");
}
if (TREE_CODE (declarator) != TEMPLATE_ID_EXPR)
......
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