+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.
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);