summaryrefslogtreecommitdiff
path: root/lib/MC/MCExpr.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-12-18 04:19:20 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-12-18 04:19:20 +0000
commit3f037ef2f52769e0ee9b038177242611fe19d547 (patch)
tree11df2e7f4f532d640ebc3aa7bd1ac4e2dfe427ae /lib/MC/MCExpr.cpp
parent47e8ae6324c305991a566458fe2de2034ed9ce48 (diff)
downloadllvm-3f037ef2f52769e0ee9b038177242611fe19d547.tar.gz
llvm-3f037ef2f52769e0ee9b038177242611fe19d547.tar.bz2
llvm-3f037ef2f52769e0ee9b038177242611fe19d547.tar.xz
Add a FIXME and explain a hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122144 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCExpr.cpp')
-rw-r--r--lib/MC/MCExpr.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/MC/MCExpr.cpp b/lib/MC/MCExpr.cpp
index 8c24ce5d6b..3533da2cf6 100644
--- a/lib/MC/MCExpr.cpp
+++ b/lib/MC/MCExpr.cpp
@@ -267,7 +267,10 @@ bool MCExpr::EvaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm,
return true;
}
- if (!EvaluateAsRelocatableImpl(Value, Asm, Layout, Addrs, Addrs) ||
+ // FIXME: The use if InSet = Addrs is a hack. Setting InSet causes us
+ // absolutize differences across sections and that is what the MachO writer
+ // uses Addrs for.
+ if (!EvaluateAsRelocatableImpl(Value, Asm, Layout, Addrs, /*InSet*/ Addrs) ||
!Value.isAbsolute()) {
// EvaluateAsAbsolute is defined to return the "current value" of
// the expression if we are given a Layout object, even in cases