Change MCExpr::EvaluateAsRelocatableImpl of variables to return the original
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 15 Nov 2010 16:33:49 +0000 (16:33 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 15 Nov 2010 16:33:49 +0000 (16:33 +0000)
commit94ed5fca3f5ab5acb74e70b8393b837131e7110c
tree79053512e8b0511e949ea49b90be108d19f234b1
parentd3443e99e43945fdb0742177da06a32fa225740d
Change MCExpr::EvaluateAsRelocatableImpl of variables to return the original
variable if recursing fails to simplify it.

Factor AliasedSymbol to be a method of MCSymbol.

Update MCAssembler::EvaluateFixup to match the change in
EvaluateAsRelocatableImpl.

Remove the WeakRefExpr hack, as the object writer now sees the weakref with
no extra effort needed.

Nothing else is using MCTargetExpr, but keep it for now.

Now that the ELF writer sees relocations with aliases, handle

    .weak    foo2
foo2:
    .weak    bar2
    .set    bar2,foo2
    .quad    bar2

the same way gas does and produce a relocation with bar2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119152 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCSymbol.h
lib/MC/ELFObjectWriter.cpp
lib/MC/MCAssembler.cpp
lib/MC/MCELFStreamer.cpp
lib/MC/MCExpr.cpp
lib/MC/MCSymbol.cpp
test/MC/ELF/alias-reloc.s