Add back commits r219835 and a fixed version of r219829.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 17 Oct 2014 01:48:58 +0000 (01:48 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 17 Oct 2014 01:48:58 +0000 (01:48 +0000)
commitd8ee23f34c2f4b8472f406067140cb4d37c19cab
treecf3b39968bbe7637ded5d57843cab3f7555f86e6
parent101025c33dd8fbbab07991fb43b30dfc560269a0
Add back commits r219835 and a fixed version of r219829.

The only difference from r219829 is using

getOrCreateSectionSymbol(*ELFSec)

instead of

GetOrCreateSymbol(ELFSec->getSectionName())

in ELFObjectWriter which causes us to use the correct section symbol even if
we have multiple sections with the same name.

Original messages:

r219829:
Correctly handle references to section symbols.

When processing assembly like

.long .text

we were creating a new undefined symbol .text. GAS on the other hand would
handle that as a reference to the .text section.

This patch implements that by creating the section symbols earlier so that
they are visible during asm parsing.

The patch also updates llvm-readobj to print the symbol number in the relocation
dump so that the test can differentiate between two sections with the same name.

r219835:
Allow forward references to section symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220021 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCContext.h
lib/MC/ELFObjectWriter.cpp
lib/MC/MCContext.cpp
lib/MC/MCELFStreamer.cpp
test/MC/ELF/comdat.s
test/MC/ELF/section-sym-err.s [new file with mode: 0644]
test/MC/ELF/section-sym.s [new file with mode: 0644]
test/MC/ELF/section-sym2.s [new file with mode: 0644]