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. --- gcc/d/decl.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc index cf61cd49159..0d46ee180e7 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); -- 2.30.2