diff options
author | Hsiangkai Wang <hsiangkai@gmail.com> | 2018-08-01 04:17:41 +0000 |
---|---|---|
committer | Hsiangkai Wang <hsiangkai@gmail.com> | 2018-08-01 04:17:41 +0000 |
commit | 2089e4c8f11aeff994c14a85b9de246538c8fd8d (patch) | |
tree | 27ff6bec80cd3da4909ac310310a4c6f61ee0970 /llvm/lib | |
parent | 36432a70c1c2df071954df5b49bd7d50e18cbb46 (diff) | |
download | bcm5719-llvm-2089e4c8f11aeff994c14a85b9de246538c8fd8d.tar.gz bcm5719-llvm-2089e4c8f11aeff994c14a85b9de246538c8fd8d.zip |
[DebugInfo] Fix build failed in clang-x86_64-linux-selfhost-modules.
Only generate symbol difference expression if needed.
llvm-svn: 338484
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/MC/MCAssembler.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index d3a84e26f1b..1e23b6d816e 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -954,7 +954,13 @@ bool MCAssembler::relaxDwarfLineAddr(MCAsmLayout &Layout, MCContext &Context = Layout.getAssembler().getContext(); uint64_t OldSize = DF.getContents().size(); int64_t AddrDelta; - bool Abs = DF.getAddrDelta().evaluateAsAbsolute(AddrDelta, Layout); + bool Abs; + if (getBackend().requiresDiffExpressionRelocations()) + Abs = DF.getAddrDelta().evaluateAsAbsolute(AddrDelta, Layout); + else { + Abs = DF.getAddrDelta().evaluateKnownAbsolute(AddrDelta, Layout); + assert(Abs && "We created a line delta with an invalid expression"); + } int64_t LineDelta; LineDelta = DF.getLineDelta(); SmallVectorImpl<char> &Data = DF.getContents(); |