diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-20 14:13:00 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-20 14:13:00 +0000 |
commit | d718e1bc42977e21e80731fcc4004c52963cf33e (patch) | |
tree | 497200eb12dfd940a8293d497ecc5a24595fb6ef /gcc/cp/init.c | |
parent | 5c7f2fb597349fd03b4e516ee64e8becaefdde1f (diff) | |
download | gcc-d718e1bc42977e21e80731fcc4004c52963cf33e.tar.gz |
PR c++/7586
* pt.c (tsubst): Handle typedefs by looking for the specialization.
(retrieve_specialization): Only tagged types use
DECL_TEMPLATE_INSTANTIATIONS.
(instantiate_class_template): Push nested classes too.
(tsubst_decl) [TYPE_DECL]: Only check for canonical decl for
tagged types.
* cp-tree.h (MAYBE_TAGGED_TYPE_P): New macro.
* init.c (is_aggr_type): Remove redundant tests.
* class.c (push_nested_class): Use CLASS_TYPE_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128621 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r-- | gcc/cp/init.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 247879cc5a0..c5c17b1a9e1 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -1281,9 +1281,7 @@ is_aggr_type (tree type, int or_else) if (type == error_mark_node) return 0; - if (! IS_AGGR_TYPE (type) - && TREE_CODE (type) != TEMPLATE_TYPE_PARM - && TREE_CODE (type) != BOUND_TEMPLATE_TEMPLATE_PARM) + if (! IS_AGGR_TYPE (type)) { if (or_else) error ("%qT is not an aggregate type", type); |