diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-12 16:55:59 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-03-12 16:55:59 +0000 |
commit | 3d5d464df891196b25a52bcf5b8fcd4b1dc3e4e7 (patch) | |
tree | ddea8115e6f19568d5c952ed22b579d6a6c96867 /llvm/lib/MC/MCAssembler.cpp | |
parent | 7066f7bc39426fdfd8646a7469a0945fe660e654 (diff) | |
download | bcm5719-llvm-3d5d464df891196b25a52bcf5b8fcd4b1dc3e4e7.tar.gz bcm5719-llvm-3d5d464df891196b25a52bcf5b8fcd4b1dc3e4e7.zip |
Try harder to evaluate expressions when printing assembly.
When printing assembly we don't have a Layout object, but we can still
try to fold some constants.
Testcase by Ulrich Weigand.
llvm-svn: 203677
Diffstat (limited to 'llvm/lib/MC/MCAssembler.cpp')
-rw-r--r-- | llvm/lib/MC/MCAssembler.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index b8a4b438f6c..89d7d190167 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -122,7 +122,7 @@ uint64_t MCAsmLayout::getSymbolOffset(const MCSymbolData *SD) const { // If this is a variable, then recursively evaluate now. if (S.isVariable()) { MCValue Target; - if (!S.getVariableValue()->EvaluateAsRelocatable(Target, *this)) + if (!S.getVariableValue()->EvaluateAsRelocatable(Target, this)) report_fatal_error("unable to evaluate offset for variable '" + S.getName() + "'"); @@ -357,7 +357,7 @@ bool MCAssembler::evaluateFixup(const MCAsmLayout &Layout, MCValue &Target, uint64_t &Value) const { ++stats::evaluateFixup; - if (!Fixup.getValue()->EvaluateAsRelocatable(Target, Layout)) + if (!Fixup.getValue()->EvaluateAsRelocatable(Target, &Layout)) getContext().FatalError(Fixup.getLoc(), "expected relocatable expression"); bool IsPCRel = Backend.getFixupKindInfo( |