[llvm] r338484 - [DebugInfo] Fix build failed in clang-x86_64-linux-selfhost-modules.

Hsiangkai Wang via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 31 21:17:41 PDT 2018


Author: hsiangkai
Date: Tue Jul 31 21:17:41 2018
New Revision: 338484

URL: http://llvm.org/viewvc/llvm-project?rev=338484&view=rev
Log:
[DebugInfo] Fix build failed in clang-x86_64-linux-selfhost-modules.

Only generate symbol difference expression if needed.

Modified:
    llvm/trunk/lib/MC/MCAssembler.cpp

Modified: llvm/trunk/lib/MC/MCAssembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=338484&r1=338483&r2=338484&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAssembler.cpp Tue Jul 31 21:17:41 2018
@@ -954,7 +954,13 @@ bool MCAssembler::relaxDwarfLineAddr(MCA
   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();




More information about the llvm-commits mailing list