summaryrefslogtreecommitdiff
path: root/gcc/cp/search.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-04-05 12:34:20 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>1999-04-05 12:34:20 +0000
commit185ee0b4cf1bb83e8d285f30de81fec8ecfcb252 (patch)
tree381160cbe87945a2d68fddb5e59d42f2fd66730b /gcc/cp/search.c
parent5944eb82c108b03f91b25c44c2d70d12cd1fc37a (diff)
downloadgcc-185ee0b4cf1bb83e8d285f30de81fec8ecfcb252.tar.gz
* class.c (maybe_fixup_vptrs): Remove declaration.
(build_class_init_list): Likewise. * decl.c (pushdecl_class_level): Call check_template_shadow here ... (push_class_level_binding): ... not here. * search.c (dfs_push_type_decls): Only avoid template-self-reference TYPE_DECLs if they are from base classes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26202 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/search.c')
-rw-r--r--gcc/cp/search.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 5f4a76fe6cc..99e25a84a15 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -2943,7 +2943,8 @@ dfs_push_type_decls (binfo, data)
type = BINFO_TYPE (binfo);
for (fields = TYPE_FIELDS (type); fields; fields = TREE_CHAIN (fields))
if (DECL_NAME (fields) && TREE_CODE (fields) == TYPE_DECL
- && !template_self_reference_p (type, fields))
+ && !(!same_type_p (type, current_class_type)
+ && template_self_reference_p (type, fields)))
setup_class_bindings (DECL_NAME (fields), /*type_binding_p=*/1);
/* We can't just use BINFO_MARKED because envelope_add_decl uses