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/MachObjectWriter.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/MachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index edbd2b98b28..b3b593d3154 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -82,7 +82,7 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbolData* SD, MCValue Target; - if (!S.getVariableValue()->EvaluateAsRelocatable(Target, Layout)) + if (!S.getVariableValue()->EvaluateAsRelocatable(Target, &Layout)) report_fatal_error("unable to evaluate offset for variable '" + S.getName() + "'"); @@ -631,7 +631,7 @@ void MachObjectWriter::markAbsoluteVariableSymbols(MCAssembler &Asm, // and neither symbol is external, mark the variable as absolute. const MCExpr *Expr = SD.getSymbol().getVariableValue(); MCValue Value; - if (Expr->EvaluateAsRelocatable(Value, Layout)) { + if (Expr->EvaluateAsRelocatable(Value, &Layout)) { if (Value.getSymA() && Value.getSymB()) const_cast<MCSymbol*>(&SD.getSymbol())->setAbsolute(); } |