diff --git a/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp b/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp index 6db921ed939..7133109ea84 100644 --- a/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp +++ b/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp @@ -83,7 +83,9 @@ uint32_t LazyRandomTypeCollection::getOffsetOfType(TypeIndex Index) { } CVType LazyRandomTypeCollection::getType(TypeIndex Index) { - error(ensureTypeExists(Index)); + uint32_t I = Index.getIndex(); + auto EC = ensureTypeExists(Index); + error(std::move(EC)); assert(contains(Index)); return Records[Index.toArrayIndex()].Type; diff --git a/tools/llvm-pdbutil/MinimalSymbolDumper.cpp b/tools/llvm-pdbutil/MinimalSymbolDumper.cpp index a6816bde0ea..ce813bf8366 100644 --- a/tools/llvm-pdbutil/MinimalSymbolDumper.cpp +++ b/tools/llvm-pdbutil/MinimalSymbolDumper.cpp @@ -24,15 +24,16 @@ using namespace llvm; using namespace llvm::codeview; using namespace llvm::pdb; -static StringRef getSymbolKindName(SymbolKind K) { +static std::string getSymbolKindName(SymbolKind K) { switch (K) { #define SYMBOL_RECORD(EnumName, value, name) \ case EnumName: \ return #EnumName; #define CV_SYMBOL(EnumName, value) SYMBOL_RECORD(EnumName, value, EnumName) #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def" - default: - llvm_unreachable("Unknown symbol kind!"); + default: { + return formatv("Unknown Symbol Kind [{0:X}]", uint32_t(K)).str(); + } } return ""; } @@ -674,7 +675,7 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, FrameProcSym &FP) { Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, HeapAllocationSiteSym &HAS) { AutoIndent Indent(P, 7); - P.formatLine("type = {0}, addr = {1} call size = {2}", typeIndex(HAS.Type), + P.formatLine("type = {0}, addr = {1} call size = {2}", idIndex(HAS.Type), formatSegmentOffset(HAS.Segment, HAS.CodeOffset), HAS.CallInstructionSize); return Error::success(); @@ -686,7 +687,7 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, InlineSiteSym &IS) { StringRef Annotations(reinterpret_cast(Bytes.begin()), Bytes.size()); - P.formatLine("inlinee = {0}, parent = {1}, end = {2}", typeIndex(IS.Inlinee), + P.formatLine("inlinee = {0}, parent = {1}, end = {2}", idIndex(IS.Inlinee), IS.Parent, IS.End); P.formatLine("annotations = {0}", toHex(Annotations)); return Error::success(); @@ -776,7 +777,7 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, CallerSym &Caller) { AutoIndent Indent(P, 7); for (const auto &I : Caller.Indices) { - P.formatLine("callee: {0}", typeIndex(I)); + P.formatLine("callee: {0}", idIndex(I)); } return Error::success(); }