diff options
author | David Blaikie <dblaikie@gmail.com> | 2018-12-20 20:46:55 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2018-12-20 20:46:55 +0000 |
commit | b3c56af49b54a4f6a8899d9cd198ce4da4ec15c0 (patch) | |
tree | dece5d398bd58dd8b7beed5bf5adbfe200a78bf8 /llvm/lib/CodeGen/AsmPrinter | |
parent | dcc8fc9e985f16a6df878ec0ff7212e0a2da0c8f (diff) | |
download | bcm5719-llvm-b3c56af49b54a4f6a8899d9cd198ce4da4ec15c0.tar.gz bcm5719-llvm-b3c56af49b54a4f6a8899d9cd198ce4da4ec15c0.zip |
DebugInfo: Fix for missing comp_dir handling with r349207
When deciding lazily whether a CU would be split or non-split I
accidentally dropped some handling for the line tables comp_dir (by
doing it lazily it was too late to be handled properly by the MC line
table code).
Move that bit of the code back to the non-lazy place.
llvm-svn: 349819
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 2d8c9e49738..71fbfaa567c 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -573,15 +573,6 @@ void DwarfDebug::finishUnitAttributes(const DICompileUnit *DIUnit, DIE &Die = NewCU.getUnitDie(); StringRef FN = DIUnit->getFilename(); - // LTO with assembly output shares a single line table amongst multiple CUs. - // To avoid the compilation directory being ambiguous, let the line table - // explicitly describe the directory of all files, never relying on the - // compilation directory. - if (!Asm->OutStreamer->hasRawTextSupport() || SingleCU) - Asm->OutStreamer->emitDwarfFile0Directive( - CompilationDir, FN, NewCU.getMD5AsBytes(DIUnit->getFile()), - DIUnit->getSource(), NewCU.getUniqueID()); - StringRef Producer = DIUnit->getProducer(); StringRef Flags = DIUnit->getFlags(); if (!Flags.empty() && !useAppleExtensionAttributes()) { @@ -649,6 +640,16 @@ DwarfDebug::getOrCreateDwarfCompileUnit(const DICompileUnit *DIUnit) { for (auto *IE : DIUnit->getImportedEntities()) NewCU.addImportedEntity(IE); + // LTO with assembly output shares a single line table amongst multiple CUs. + // To avoid the compilation directory being ambiguous, let the line table + // explicitly describe the directory of all files, never relying on the + // compilation directory. + if (!Asm->OutStreamer->hasRawTextSupport() || SingleCU) + Asm->OutStreamer->emitDwarfFile0Directive( + CompilationDir, DIUnit->getFilename(), + NewCU.getMD5AsBytes(DIUnit->getFile()), DIUnit->getSource(), + NewCU.getUniqueID()); + if (useSplitDwarf()) { NewCU.setSkeleton(constructSkeletonCU(NewCU)); NewCU.setSection(Asm->getObjFileLowering().getDwarfInfoDWOSection()); |