diff options
author | Roman Divacky <rdivacky@freebsd.org> | 2010-12-20 21:14:39 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@freebsd.org> | 2010-12-20 21:14:39 +0000 |
commit | 55184ddd357c4a43db33bfded6dfeeaa96436312 (patch) | |
tree | ec3f8b82dab29b8eb4bc11aa622daafddf2ed46c /llvm/lib/MC/ELFObjectWriter.cpp | |
parent | b0602a6b0ff9b3363cf3aa04277154df1b91f83b (diff) | |
download | bcm5719-llvm-55184ddd357c4a43db33bfded6dfeeaa96436312.tar.gz bcm5719-llvm-55184ddd357c4a43db33bfded6dfeeaa96436312.zip |
Set the value of absolute symbols.
llvm-svn: 122268
Diffstat (limited to 'llvm/lib/MC/ELFObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 1bb47751ed4..bb523cefedc 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -518,6 +518,15 @@ static uint64_t SymbolValue(MCSymbolData &Data, const MCAsmLayout &Layout) { return Data.getCommonAlignment(); const MCSymbol &Symbol = Data.getSymbol(); + + if (Symbol.isAbsolute() && Symbol.isVariable()) { + if (const MCExpr *Value = Symbol.getVariableValue()) { + int64_t IntValue; + if (Value->EvaluateAsAbsolute(IntValue, Layout)) + return (uint64_t)IntValue; + } + } + if (!Symbol.isInSection()) return 0; |