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: https://git.libre-soc.org/?a=commitdiff_plain;h=6e1e0decc9e17a4283d1b5508e892be5215b8ab9;p=gcc.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 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