summaryrefslogtreecommitdiffstats
path: root/llvm/tools/dsymutil/DwarfLinker.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2017-08-08 18:26:12 +0000
committerAdrian Prantl <aprantl@apple.com>2017-08-08 18:26:12 +0000
commite502f005383568e3e3d22e1e0a9005c29572e720 (patch)
treea9dac4d8f36ef37c946705fa5408b82bc1bd12da /llvm/tools/dsymutil/DwarfLinker.cpp
parent367c63dc1146b0d9dfe1fb436f71191b6364f9c6 (diff)
downloadbcm5719-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.cpp4
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"
OpenPOWER on IntegriCloud