mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-06 00:40:22 +08:00
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:
parent
7152373700
commit
6b9ab5cc45
@ -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.
|
||||
|
14
gcc/cp/pt.c
14
gcc/cp/pt.c
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user