1 #include "llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h" 2 #include "llvm/DebugInfo/PDB/Native/NativeSession.h" 3 #include "llvm/DebugInfo/PDB/PDBExtras.h" 4 5 using namespace llvm; 6 using namespace llvm::codeview; 7 using namespace llvm::pdb; 8 9 NativeTypeTypedef::NativeTypeTypedef(NativeSession &Session, SymIndexId Id, 10 codeview::UDTSym Typedef) 11 : NativeRawSymbol(Session, PDB_SymType::Typedef, Id), 12 Record(std::move(Typedef)) {} 13 14 NativeTypeTypedef::~NativeTypeTypedef() = default; 15 16 void NativeTypeTypedef::dump(raw_ostream &OS, int Indent, 17 PdbSymbolIdField ShowIdFields, 18 PdbSymbolIdField RecurseIdFields) const { 19 NativeRawSymbol::dump(OS, Indent, ShowIdFields, RecurseIdFields); 20 dumpSymbolField(OS, "name", getName(), Indent); 21 dumpSymbolIdField(OS, "typeId", getTypeId(), Indent, Session, 22 PdbSymbolIdField::Type, ShowIdFields, RecurseIdFields); 23 } 24 25 std::string NativeTypeTypedef::getName() const { 26 return std::string(Record.Name); 27 } 28 29 SymIndexId NativeTypeTypedef::getTypeId() const { 30 return Session.getSymbolCache().findSymbolByTypeIndex(Record.Type); 31 } 32