diff options
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCContext.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 11 |
2 files changed, 2 insertions, 14 deletions
diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp index 348436f4bd0..49fad131a2c 100644 --- a/llvm/lib/MC/MCContext.cpp +++ b/llvm/lib/MC/MCContext.cpp @@ -603,8 +603,7 @@ Expected<unsigned> MCContext::getDwarfFile(StringRef Directory, MD5::MD5Result *Checksum, Optional<StringRef> Source, unsigned CUID) { - MCDwarfLineTable &Table = - MCDwarfLineTablesCUMap.emplace(CUID, DwarfVersion).first->second; + MCDwarfLineTable &Table = MCDwarfLineTablesCUMap[CUID]; return Table.tryGetFile(Directory, FileName, Checksum, Source, FileNumber); } @@ -613,7 +612,7 @@ Expected<unsigned> MCContext::getDwarfFile(StringRef Directory, bool MCContext::isValidDwarfFileNumber(unsigned FileNumber, unsigned CUID) { const MCDwarfLineTable &LineTable = getMCDwarfLineTable(CUID); if (FileNumber == 0) - return getDwarfVersion() >= 5; + return getDwarfVersion() >= 5 && LineTable.hasRootFile(); if (FileNumber >= LineTable.getMCDwarfFiles().size()) return false; diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index 73b4d4bcd19..83b6b4f1aa3 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -542,15 +542,6 @@ Expected<unsigned> MCDwarfLineTable::tryGetFile(StringRef &Directory, return Header.tryGetFile(Directory, FileName, Checksum, Source, FileNumber); } -bool isRootFile(const MCDwarfFile &RootFile, StringRef &Directory, - StringRef &FileName, MD5::MD5Result *Checksum) { - if (RootFile.Name.empty() || RootFile.Name != FileName.data()) - return false; - if (!RootFile.Checksum) - return !Checksum; - return *RootFile.Checksum == *Checksum; -} - Expected<unsigned> MCDwarfLineTableHeader::tryGetFile(StringRef &Directory, StringRef &FileName, @@ -570,8 +561,6 @@ MCDwarfLineTableHeader::tryGetFile(StringRef &Directory, trackMD5Usage(Checksum); HasSource = (Source != None); } - if (isRootFile(RootFile, Directory, FileName, Checksum) && DwarfVersion >= 5) - return 0; if (FileNumber == 0) { // File numbers start with 1 and/or after any file numbers // allocated by inline-assembler .file directives. |