From: Nathan Sidwell Date: Wed, 22 Jul 2020 15:38:58 +0000 (-0700) Subject: c++: Don't add enums to class's decl_list X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=800649d79ed7e215edd4f47ec438fa870a1dc9f1;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 803b33bf346a..a3913f4ce0b5 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