diff options
author | Jonas Devlieghere <jonas@devlieghere.com> | 2018-07-10 15:32:17 +0000 |
---|---|---|
committer | Jonas Devlieghere <jonas@devlieghere.com> | 2018-07-10 15:32:17 +0000 |
commit | 74dc40422c2c022c5762ff02147360afda8bf8d8 (patch) | |
tree | 62b843388e07ce9e2e3929a77467282073b345b5 /tools/dsymutil | |
parent | 7176a5d65f55dabbeebfc2cecfe247af722701cd (diff) |
[MC] Add interface to finish pending labels.
When manually finishing the object writer in dsymutil, it's possible
that there are pending labels that haven't been resolved. This results
in an assertion when the assembler tries to fixup a label that doesn't
have an address yet.
Differential revision: https://reviews.llvm.org/D49131
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336688 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/dsymutil')
-rw-r--r-- | tools/dsymutil/MachOUtils.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/dsymutil/MachOUtils.cpp b/tools/dsymutil/MachOUtils.cpp index 5d70afdc9f7..eda530b810c 100644 --- a/tools/dsymutil/MachOUtils.cpp +++ b/tools/dsymutil/MachOUtils.cpp @@ -322,8 +322,10 @@ bool generateDsymCompanion(const DebugMap &DM, MCStreamer &MS, auto &ObjectStreamer = static_cast<MCObjectStreamer &>(MS); MCAssembler &MCAsm = ObjectStreamer.getAssembler(); auto &Writer = static_cast<MachObjectWriter &>(MCAsm.getWriter()); - MCAsmLayout Layout(MCAsm); + // Layout but don't emit. + ObjectStreamer.flushPendingLabels(); + MCAsmLayout Layout(MCAsm); MCAsm.layout(Layout); BinaryHolder InputBinaryHolder(false); |