llvm-project/llvm/test/MC/ELF
Rafael Espindola 13a79bbfe5 Change how we handle section symbols on ELF.
On ELF every section can have a corresponding section symbol. When in
an assembly file we have

.quad .text

the '.text' refers to that symbol.

The way we used to handle them is to leave .text an undefined symbol
until the very end when the object writer would map them to the
actual section symbol.

The problem with that is that anything before the end would see an
undefined symbol. This could result in bad diagnostics
(test/MC/AArch64/label-arithmetic-diags-elf.s), or incorrect results
when using the asm streamer (est/MC/Mips/expansion-jal-sym-pic.s).

Fixing this will also allow using the section symbol earlier for
setting sh_link of SHF_METADATA sections.

This patch includes a few hacks to avoid changing our behaviour when
handling conflicts between section symbols and other symbols. I
reported pr31850 to track that.

llvm-svn: 293936
2017-02-02 21:26:06 +00:00
..
ARM [ARM] Implement execute-only support in CodeGen 2016-12-15 07:59:08 +00:00
abs.s
alias-reloc.s
alias-to-local.s Don't walk aliases from global to local symbols in comdats. 2015-04-17 08:46:11 +00:00
alias.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
align-bss.s
align-nops.s
align-size.s
align-text.s
align-zero.s [MC/ELF] Accept zero for .align directive 2015-09-08 18:59:47 +00:00
align.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
bad-expr.s
bad-expr2.s
bad-expr3.s
bad-relocation.s
bad-section.s
basic-elf-32.s Revert r240302 ("Bring r240130 back."). 2015-06-23 11:31:32 +00:00
basic-elf-64.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
bracket-exprs.s [MC] Use LShr for constant evaluation of ">>" on ELF/arm64--darwin. 2015-04-28 01:37:11 +00:00
bracket.s
bss-large.ll
bss.ll
call-abs.s
cfi-adjust-cfa-offset.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-advance-loc2.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-def-cfa-offset.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-def-cfa-register.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-def-cfa.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-escape.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-large-model.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-offset.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-reg.s
cfi-register.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-rel-offset.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-rel-offset2.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-remember.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-restore.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-same-value.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-sections.s [DWARF] Add CIE header fields address_size and segment_size when generating dwarf-4 2015-05-12 15:25:08 +00:00
cfi-signal-frame.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-undefined.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-version.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
cfi-window-save.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi-zero-addr-delta.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
cfi.s Use SHT_X86_64_UNWIND on every OS. 2015-11-06 13:35:35 +00:00
comdat-dup-group-name.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
comdat-reloc.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
comdat.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
common-error1.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
common-error2.s [Assembler] Make fatal assembler errors non-fatal 2015-11-17 10:00:43 +00:00
common-error3.s [MC] Common symbols weren't being checked for redeclaration which allowed an assembly file to generate an assertion in setCommon(): !isCommon(). This change allows redeclaration as long as the size and alignment match exactly, otherwise report a fatal error. 2015-06-06 20:12:40 +00:00
common-redeclare.s [MC] Common symbols weren't being checked for redeclaration which allowed an assembly file to generate an assertion in setCommon(): !isCommon(). This change allows redeclaration as long as the size and alignment match exactly, otherwise report a fatal error. 2015-06-06 20:12:40 +00:00
common.s Update tests to not be as dependent on section numbers. 2015-04-15 15:59:37 +00:00
common2.s Simplify local common output. 2015-11-03 18:50:51 +00:00
comp-dir.s
compression.s Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections. 2016-05-27 12:27:32 +00:00
debug-line.s Speculatively revert r289925, see PR31407 2016-12-16 14:02:28 +00:00
debug-line2.s Speculatively revert r289925, see PR31407 2016-12-16 14:02:28 +00:00
debug-loc.s Speculatively revert r289925, see PR31407 2016-12-16 14:02:28 +00:00
diff.s
diff2.s
discriminator.s Speculatively revert r289925, see PR31407 2016-12-16 14:02:28 +00:00
div-by-zero.s [MC] Don't crash on division by zero. 2015-09-11 20:47:35 +00:00
dot-symbol-assignment.s Simplify .org processing and make it a bit more powerful. 2015-11-04 23:50:29 +00:00
elf_directive_previous.s
elf_directive_section.s
empty-dwarf-lines.s Speculatively revert r289925, see PR31407 2016-12-16 14:02:28 +00:00
empty-twice.ll [llc/opt] Add an option to run all passes twice 2015-12-04 21:56:46 +00:00
empty.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
entsize.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
entsize.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
fde.s
file-double.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
file.s Relax these tests a bit. 2015-05-22 21:37:13 +00:00
gen-dwarf.s Change how we handle section symbols on ELF. 2017-02-02 21:26:06 +00:00
global-offset.s
gnu-type-diagnostics.s Revert part of r241149, "Fix PR23872: Integrated assembler error message when using .type directive with @ in AArch32 assembly." 2015-07-01 10:28:09 +00:00
gnu-type.s
got-relaxed-i386.s Add initial support for R_386_GOT32X. 2016-07-06 21:19:11 +00:00
got-relaxed-no-relax.s Change the default of -relax-relocations. 2016-06-17 17:04:56 +00:00
got-relaxed-rex.s Change the default of -relax-relocations. 2016-06-17 17:04:56 +00:00
got-relaxed.s Change the default of -relax-relocations. 2016-06-17 17:04:56 +00:00
got.s Don't create an unused _GLOBAL_OFFSET_TABLE_. 2015-05-28 15:20:00 +00:00
ident.s
ifunc-reloc.s Update tests to not be as dependent on section numbers. 2015-04-15 15:59:37 +00:00
invalid-symver.s
lcomm.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
leb128.s
lit.local.cfg
local-reloc.s Update tests to not be as dependent on section numbers. 2015-04-15 15:59:37 +00:00
many-sections-2.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
many-sections-3.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
many-sections.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
merge.s Revert r240302 ("Bring r240130 back."). 2015-06-23 11:31:32 +00:00
n_bytes.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
no-fixup.s
no-reloc.s
nocompression.s Attemp to fix build bot after r270987 2016-05-27 12:52:30 +00:00
noexec.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
norelocation.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
offset.s
org.s
pic-diff.s
plt.s
popsection.s Remove unnecessary dependency on section and string positions. 2015-11-03 19:24:17 +00:00
pr9292.s
pr19430.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
pr19582.s MC: For variable symbols, maintain MCSymbol::Section as a cache. 2015-04-03 01:46:11 +00:00
relax-all-flag.s
relax-arith.s Revert r265817 2016-04-08 18:15:37 +00:00
relax-arith2.s Revert r265817 2016-04-08 18:15:37 +00:00
relax-arith3.s Revert r265817 2016-04-08 18:15:37 +00:00
relax-arith4.s Revert r265817 2016-04-08 18:15:37 +00:00
relax-crash.s
relax.s Relax these tests a bit. 2015-05-22 21:37:13 +00:00
reloc-same-name-section.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
relocation-386.s Add initial support for R_386_GOT32X. 2016-07-06 21:19:11 +00:00
relocation-pc.s ELF can handle some relocations of the form -sym + constant. 2015-11-02 19:13:59 +00:00
relocation-tls.s [MC] support TLSDESC and TLSCALL / GNU2 tls dialect 2016-04-09 20:32:33 +00:00
relocation.s Accept subtractions involving a weak symbol. 2016-01-20 18:57:48 +00:00
rename.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
section-numeric-flag.s Add missing triple target for numeric section flag test 2016-12-15 10:20:48 +00:00
section-quoting.s
section-sym-redefine.s Handle section vs global name conflict. 2016-03-28 20:36:28 +00:00
section-sym.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
section-sym2.s Fix the interpretation of a 0 st_name. 2015-06-03 05:14:22 +00:00
section-unique-err1.s Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
section-unique-err2.s Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
section-unique-err3.s Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
section-unique-err4.s Use a comma after the unique keyword. 2015-04-06 16:34:41 +00:00
section-unique.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
section.s [ELF][gcc compatibility]: support section names with special characters (e.g. "/") 2016-03-22 11:23:15 +00:00
set.s
size.s Expand variables when evaluating absolute expressions. 2015-03-04 22:03:21 +00:00
sleb.s Convert tests under MC/ELF from macho-dump to llvm-readobj. 2015-08-14 15:16:37 +00:00
strtab-suffix-opt.s Don't create empty sections just to look like gas. 2015-11-03 20:02:22 +00:00
subsection.s
subtraction-error.s
symbol-names.s
symver-msvc.s Relax these tests a bit. 2015-05-22 21:37:13 +00:00
symver-pr23914.s Fix PR23914. 2015-06-22 23:36:03 +00:00
symver.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
tls-i386.s
tls.s Update tests to not be as dependent on section numbers. 2015-04-15 15:59:37 +00:00
type-propagate.s Don't constrain the section order in tests that don't depend on it. 2015-04-29 13:55:07 +00:00
type.s Relax these tests a bit. 2015-05-22 21:37:13 +00:00
uleb.s Convert tests under MC/ELF from macho-dump to llvm-readobj. 2015-08-14 15:16:37 +00:00
undef-temp.s Diagnose undefined temporary symbols. 2015-06-25 20:10:45 +00:00
undef.s Diagnose undefined temporary symbols. 2015-06-25 20:10:45 +00:00
undefined-directional.s AsmParser: record "# line file" context to calculate location for diag 2016-04-13 19:46:54 +00:00
version.s
weak-diff.s Compute A-B when A or B is weak. 2015-04-17 21:15:17 +00:00
weak-relocation.s
weak.s
weakref-plt.s
weakref-reloc.s Don't create an unused _GLOBAL_OFFSET_TABLE_. 2015-05-28 15:20:00 +00:00
weakref.s Omit unused section symbols from the symbol table. 2015-06-04 15:33:30 +00:00
x86_64-reloc-sizetest.s
zero.s