From 6e1e0decc9e17a4283d1b5508e892be5215b8ab9 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Wed, 22 Jul 2020 08:38:58 -0700 Subject: [PATCH] c++: Don't add enums to class's decl_list We don't need to add CONST_DECLs to a template decl's decl list. Also made the code flow a bit clearer. gcc/cp/ * class.c (maybe_add_class_template_decl_list): Don't add CONST_DECLs. --- gcc/cp/class.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 803b33bf346..a3913f4ce0b 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -3049,11 +3049,14 @@ finish_struct_anon (tree t) void maybe_add_class_template_decl_list (tree type, tree t, int friend_p) { - /* Save some memory by not creating TREE_LIST if TYPE is not template. */ - if (CLASSTYPE_TEMPLATE_INFO (type)) - CLASSTYPE_DECL_LIST (type) - = tree_cons (friend_p ? NULL_TREE : type, - t, CLASSTYPE_DECL_LIST (type)); + if (CLASSTYPE_TEMPLATE_INFO (type) + && TREE_CODE (t) != CONST_DECL) + { + tree purpose = friend_p ? NULL_TREE : type; + + CLASSTYPE_DECL_LIST (type) + = tree_cons (purpose, t, CLASSTYPE_DECL_LIST (type)); + } } /* This function is called from declare_virt_assop_and_dtor via -- 2.30.2