From 2cf835ec3870fccb97757a7ad87593f116c6238b Mon Sep 17 00:00:00 2001 From: Pierre-Marie de Rodat Date: Wed, 14 Mar 2018 14:51:19 +0100 Subject: CV2PDB::addDWARFEnum: provide a default name for enumeration types It seems that UDTs (User Defined Types) are required to have names, otherwise the resulting PDB type stream is considered to be corrupted. So just like what we do for structure types, provide a default type name for enumeration types. --- src/dwarf2pdb.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dwarf2pdb.cpp b/src/dwarf2pdb.cpp index 5c403a4..cb078e3 100644 --- a/src/dwarf2pdb.cpp +++ b/src/dwarf2pdb.cpp @@ -1259,10 +1259,11 @@ int CV2PDB::addDWARFEnum(DWARF_InfoData& enumid, DWARF_CompilationUnit* cu, DIEC ? getTypeByDWARFPtr(cu, enumid.type) : getDWARFBasicType(enumid.encoding, enumid.byte_size); dtype = (codeview_type*)(userTypes + cbUserTypes); - cbUserTypes += addEnum(dtype, count, firstFieldlistType, 0, basetype, enumid.name); + const char* name = (enumid.name ? enumid.name : "__noname"); + cbUserTypes += addEnum(dtype, count, firstFieldlistType, 0, basetype, name); int enumType = nextUserType++; - addUdtSymbol(enumType, enumid.name); + addUdtSymbol(enumType, name); return enumType; } -- cgit v0.12