diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-05-08 17:12:57 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-05-08 17:12:57 +0000 | 
| commit | c46e6a5940c50058e00c0c5f9123fd82e338d29a (patch) | |
| tree | 89a719d723035c54a190b1f81d329834f1f93336 /lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | |
| parent | 148779df305667b6942fee7e758fdf81a6498f38 (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/AsmPrinter/CodeViewDebug.cpp')
| -rw-r--r-- | lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp index 786b11618d75b..87b45c001de40 100644 --- a/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp +++ b/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp @@ -469,7 +469,7 @@ void CodeViewDebug::emitTypeInformation() {      CommentPrefix += ' ';    } -  TypeDatabase TypeDB; +  TypeDatabase TypeDB(TypeTable.records().size());    CVTypeDumper CVTD(TypeDB);    TypeTable.ForEachRecord([&](TypeIndex Index, ArrayRef<uint8_t> Record) {      if (OS.isVerboseAsm()) { @@ -1705,10 +1705,12 @@ TypeIndex CodeViewDebug::lowerCompleteTypeClass(const DICompositeType *Ty) {                   SizeInBytes, FullName, Ty->getIdentifier());    TypeIndex ClassTI = TypeTable.writeKnownType(CR); -  StringIdRecord SIDR(TypeIndex(0x0), getFullFilepath(Ty->getFile())); -  TypeIndex SIDI = TypeTable.writeKnownType(SIDR); -  UdtSourceLineRecord USLR(ClassTI, SIDI, Ty->getLine()); -  TypeTable.writeKnownType(USLR); +  if (const auto *File = Ty->getFile()) { +    StringIdRecord SIDR(TypeIndex(0x0), getFullFilepath(File)); +    TypeIndex SIDI = TypeTable.writeKnownType(SIDR); +    UdtSourceLineRecord USLR(ClassTI, SIDI, Ty->getLine()); +    TypeTable.writeKnownType(USLR); +  }    addToUDTs(Ty, ClassTI);  | 
