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)
commitb66130209bdf7ffe62811a137ecb916926054049
tree3d7754b84d04955cc95f9750b2a67c29de1a0f01
parent9887d79af5fecf1413515e909644f6a23f491b69
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.

llvm-svn: 220021
llvm/include/llvm/MC/MCContext.h
llvm/lib/MC/ELFObjectWriter.cpp
llvm/lib/MC/MCContext.cpp
llvm/lib/MC/MCELFStreamer.cpp
llvm/test/MC/ELF/comdat.s
llvm/test/MC/ELF/section-sym-err.s [new file with mode: 0644]
llvm/test/MC/ELF/section-sym.s [new file with mode: 0644]
llvm/test/MC/ELF/section-sym2.s [new file with mode: 0644]