From: Iain Buclaw Date: Mon, 26 Jul 2021 17:10:47 +0000 (+0200) Subject: d: Only handle named enums in enum_initializer_decl X-Git-Tag: basepoints/gcc-13~5694 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=370f66b6af3e70ac31593d60a00d328a3368834a;p=thirdparty%2Fgcc.git d: Only handle named enums in enum_initializer_decl Anonymous enums neither generate an initializer nor typeinfo symbol, so it's safe to assert that all enum declarations passed to this function always have an identifier. gcc/d/ChangeLog: * decl.cc (enum_initializer_decl): Only handle named enums. --- diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc index cf61cd49159a..0d46ee180e75 100644 --- a/gcc/d/decl.cc +++ b/gcc/d/decl.cc @@ -2218,13 +2218,10 @@ enum_initializer_decl (EnumDeclaration *decl) if (decl->sinit) return decl->sinit; - tree type = build_ctype (decl->type); + gcc_assert (decl->ident); - Identifier *ident_save = decl->ident; - if (!decl->ident) - decl->ident = Identifier::generateId ("__enum"); + tree type = build_ctype (decl->type); tree ident = mangle_internal_decl (decl, "__init", "Z"); - decl->ident = ident_save; decl->sinit = declare_extern_var (ident, type); DECL_LANG_SPECIFIC (decl->sinit) = build_lang_decl (NULL);