diff options
| author | Adrian Prantl <aprantl@apple.com> | 2017-08-08 18:26:12 +0000 |
|---|---|---|
| committer | Adrian Prantl <aprantl@apple.com> | 2017-08-08 18:26:12 +0000 |
| commit | e502f005383568e3e3d22e1e0a9005c29572e720 (patch) | |
| tree | a9dac4d8f36ef37c946705fa5408b82bc1bd12da /llvm/tools/dsymutil/DwarfLinker.cpp | |
| parent | 367c63dc1146b0d9dfe1fb436f71191b6364f9c6 (diff) | |
| download | bcm5719-llvm-e502f005383568e3e3d22e1e0a9005c29572e720.tar.gz bcm5719-llvm-e502f005383568e3e3d22e1e0a9005c29572e720.zip | |
dsymutil: support dwarf version mismatches between object and clang module
This adds a missing call to maybeUpdateMaxDwarfVersion when visitng a
clang module. Failing to do so will cause a failure when emitting
DWARF 4 forms into a CU that AsmPrinter believes to be DWARF 2.
rdar://problem/33666528
llvm-svn: 310392
Diffstat (limited to 'llvm/tools/dsymutil/DwarfLinker.cpp')
| -rw-r--r-- | llvm/tools/dsymutil/DwarfLinker.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/tools/dsymutil/DwarfLinker.cpp b/llvm/tools/dsymutil/DwarfLinker.cpp index fcbc2680180..f9328e42fd0 100644 --- a/llvm/tools/dsymutil/DwarfLinker.cpp +++ b/llvm/tools/dsymutil/DwarfLinker.cpp @@ -3325,8 +3325,10 @@ void DwarfLinker::loadClangModule(StringRef Filename, StringRef ModulePath, auto DwarfContext = DWARFContext::create(*ErrOrObj); RelocationManager RelocMgr(*this); for (const auto &CU : DwarfContext->compile_units()) { - auto CUDie = CU->getUnitDIE(false); + maybeUpdateMaxDwarfVersion(CU->getVersion()); + // Recursively get all modules imported by this one. + auto CUDie = CU->getUnitDIE(false); if (!registerModuleReference(CUDie, *CU, ModuleMap, Indent)) { if (Unit) { errs() << Filename << ": Clang modules are expected to have exactly" |

