pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO for TYPE_DECLs.

* pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO
	for TYPE_DECLs.

From-SVN: r21061
This commit is contained in:
Mark Mitchell 1998-07-11 15:42:37 +00:00 committed by Mark Mitchell
parent 7152373700
commit 6b9ab5cc45
2 changed files with 17 additions and 2 deletions

View File

@ -1,3 +1,8 @@
1998-07-11 Mark Mitchell <mark@markmitchell.com>
* pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO
for TYPE_DECLs.
1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com>
* cp-tree.h (warn_long_long): Define.

View File

@ -1808,8 +1808,18 @@ push_template_decl_real (decl, is_friend)
if (CLASSTYPE_TEMPLATE_INSTANTIATION (ctx))
cp_error ("must specialize `%#T' before defining member `%#D'",
ctx, decl);
if (TREE_CODE (decl) == TYPE_DECL && DECL_ARTIFICIAL (decl))
tmpl = CLASSTYPE_TI_TEMPLATE (TREE_TYPE (decl));
if (TREE_CODE (decl) == TYPE_DECL)
{
if (IS_AGGR_TYPE_CODE (TREE_CODE (TREE_TYPE (decl)))
&& CLASSTYPE_TEMPLATE_INFO (TREE_TYPE (decl))
&& CLASSTYPE_TI_TEMPLATE (TREE_TYPE (decl)))
tmpl = CLASSTYPE_TI_TEMPLATE (TREE_TYPE (decl));
else
{
cp_error ("`%D' does not declare a template type", decl);
return decl;
}
}
else if (! DECL_TEMPLATE_INFO (decl))
{
cp_error ("template definition of non-template `%#D'", decl);