llvm-project/llvm/test/MC/ELF
Fangrui Song 75af9da755 [MC][ELF] Error for sh_type, sh_flags or sh_entsize change
Heads-up message: https://lists.llvm.org/pipermail/llvm-dev/2020-February/139390.html

GNU as started to emit warnings for changed sh_type or sh_flags in 2000.
GNU as>=2.35 will emit errors for most sh_type/sh_flags change, and error for entsize change.

Some cases remain warnings for legacy reasons:

   .section .init_array,"ax", @progbits
   .section .init_array,"ax", @init_array
   # And some obscure sh_flags changes (OS/Processor specific flags)

The rationale of a diagnostic (warning or error) is that sh_type,
sh_flags or sh_entsize changes usually indicate user errors. The values
are taken from the first .section directive. Successive directives are ignored.

We just try to be rigid and emit errors for all sh_type/sh_flags/sh_entsize change.

A possible improvement in the future is to reuse
llvm-readobj/ELFDumper.cpp:getSectionTypeString so that we can name the
type in the diagnostics.

Reviewed By: psmith

Differential Revision: https://reviews.llvm.org/D73999
2020-02-21 15:44:14 -08:00
..
ARM Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
abs.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
addrsig-error.s MC: Implement support for new .addrsig and .addrsig_sym directives. 2018-07-17 22:17:18 +00:00
addrsig.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
alias-reloc.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
alias-to-local.s
alias.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
align-bss.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
align-nops.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
align-size.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
align-text.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
align-zero.s
align.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
bad-expr.s
bad-expr2.s [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
bad-expr3.s
bad-relocation.s
bad-section.s
basic-elf-32.s Revert "Reland [ELF] Loose a condition for relocation with a symbol" 2019-07-22 17:48:53 +00:00
basic-elf-64.s [llvm-mc] - Produce R_X86_64_PLT32 relocation for branches with JCC opcodes too. 2020-01-20 11:42:19 +03:00
bracket-exprs.s
bracket.s
bss-large.ll
bss.ll
call-abs.s
cfi-adjust-cfa-offset.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-advance-loc2.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-b-key-frame.s [AArch64] Adding missing REQUIRES in aarch64 dwarf test 2018-12-21 13:39:13 +00:00
cfi-def-cfa-offset.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-def-cfa-register.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-def-cfa.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-escape.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-large-model.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-offset.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-reg.s
cfi-register.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-rel-offset.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-rel-offset2.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-remember.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-restore-extended.s Fix .cfi_restore with register numbers > 64 2018-11-13 10:54:49 +00:00
cfi-restore.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-same-value.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-sections.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-signal-frame.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-undefined.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-version.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
cfi-window-save.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi-zero-addr-delta.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cfi.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cgprofile-error.s [MC] Add assembler support for .cg_profile. 2018-06-02 16:33:01 +00:00
cgprofile.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
cgprofile.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
comdat-declaration-errors.s
comdat-name-number.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
comdat-reloc.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
comdat.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
common-error1.s
common-error2.s
common-error3.s Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
common-redeclare.s [llvm][test] Update tests using objdump 2018-11-11 18:40:33 +00:00
common.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
common2.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
comp-dir.s Remove some unnecessary REQUIRES: shell lines 2019-09-10 00:06:52 +00:00
compression.s Revert "Reland [ELF] Loose a condition for relocation with a symbol" 2019-07-22 17:48:53 +00:00
debug-file-options.s [DWARFv5] llvm-mc -dwarf-version does not imply -g. 2018-06-12 16:09:03 +00:00
debug-hash-file.s [DebugInfo] Handle '# line "file"' correctly for asm source. 2019-05-21 11:59:03 +00:00
debug-line.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
debug-line2.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
debug-loc.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
debug-main-file.s De-Window-ize a test 2019-05-21 12:08:42 +00:00
debug-md5-err.s [DWARFv5] Tolerate files not all having an MD5 checksum. 2018-06-14 13:38:20 +00:00
debug-md5.s [DWARFv5] llvm-mc -dwarf-version does not imply -g. 2018-06-12 16:09:03 +00:00
debug-mixed-md5.ll [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt 2019-04-19 02:26:56 +00:00
debug-prefix-map.s [DWARF] Make -g with empty assembler source work better. 2019-03-01 20:58:04 +00:00
debug-source.s [DWARFv5] llvm-mc -dwarf-version does not imply -g. 2018-06-12 16:09:03 +00:00
diff.s
diff2.s
discriminator.s
div-by-zero.s [MC] Don't crash on modulo by zero (PR35650) 2018-02-22 18:06:48 +00:00
dot-symbol-assignment.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
dwarf-file0.s [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt 2019-04-19 02:26:56 +00:00
dwarf-loc0.s [DWARF] Unclamp line table version on Darwin for v5 and later. 2018-08-08 21:16:50 +00:00
dwo-restrict-relocs.s Replace unused output filenames with /dev/null in tests 2018-07-02 18:16:44 +00:00
dwo-sections.s MC: Introduce an ELF dwo object writer and teach llvm-mc about it. 2018-05-21 19:44:54 +00:00
elf_directive_previous.s
elf_directive_section.s
empty-dwarf-lines.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
empty-twice.ll
empty.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
entsize.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
entsize.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
exclude-debug-dwo.s [MC][ELF] Error for sh_type, sh_flags or sh_entsize change 2020-02-21 15:44:14 -08:00
fde.s
file-double.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
file.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
gen-dwarf.s [NFC] fix trivial typos in comments and documents 2018-01-29 05:17:03 +00:00
global-offset.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
gnu-type-diagnostics.s
gnu-type.s
got-relaxed-i386.s
got-relaxed-no-relax.s
got-relaxed-rex.s
got-relaxed.s
got.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
ident.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
ifunc-alias.s [ELF][MC] Set types of aliases of IFunc to STT_GNU_IFUNC 2019-09-07 14:58:47 +00:00
ifunc-reloc.s [MC][ELF] Don't create relocations with section symbols for STB_LOCAL ifunc 2019-06-07 03:47:22 +00:00
invalid-symver.s [MC] Make symbol version errors non-fatal 2019-02-13 01:39:32 +00:00
lcomm.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
leb128.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
lit.local.cfg [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
local-reloc.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
many-sections-2.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
many-sections-3.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
many-sections.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
merge.s
multiple-different-symver.s Revert r369233. 2019-08-23 18:01:13 +00:00
multiple-equiv-symver.s ELFObjectWriter: Allow one unique symver per symbol 2018-04-27 20:32:34 +00:00
n_bytes.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
no-fixup.s
no-reloc.s
nocompression.s Replace 'REQUIRES: nozlib' with '!zlib' because we don't need two ways 2019-05-10 18:47:39 +00:00
noexec.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
norelocation.s
offset.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
org.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
pic-diff.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
plt.s
popsection.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
pr9292.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
pr19430.s
pr19582.s
relax-all-flag.s
relax-arith.s [llvm-objdump] Print newlines before and after "Disassembly of section ...:" 2019-05-01 10:40:48 +00:00
relax-arith2.s [llvm-objdump] Print newlines before and after "Disassembly of section ...:" 2019-05-01 10:40:48 +00:00
relax-arith3.s [llvm-objdump] Print newlines before and after "Disassembly of section ...:" 2019-05-01 10:40:48 +00:00
relax-arith4.s [llvm-objdump] Print newlines before and after "Disassembly of section ...:" 2019-05-01 10:40:48 +00:00
relax-crash.s
reloc-same-name-section.s
relocation-386.s Revert "Reland [ELF] Loose a condition for relocation with a symbol" 2019-07-22 17:48:53 +00:00
relocation-pc.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
relocation.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
rename.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section-combine.s [MC][ELF] Make linked-to symbol name part of ELFSectionKey 2020-02-14 20:03:04 -08:00
section-entsize-changed.s [MC][ELF] Error for sh_type, sh_flags or sh_entsize change 2020-02-21 15:44:14 -08:00
section-flags-changed.s [MC][ELF] Error for sh_type, sh_flags or sh_entsize change 2020-02-21 15:44:14 -08:00
section-linkorder-error.s [MC][ELF] Rename MC related "Associated" to "LinkedToSym" 2020-02-06 11:31:04 -08:00
section-numeric-flag.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section-numeric-invalid-type.s Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
section-numeric-type.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section-quoting.s
section-relro.ll Added support for "#pragma clang section relro=<name>" 2019-10-15 18:31:10 +00:00
section-sym-err.s
section-sym-err2.s
section-sym.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section-sym2.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section-type-changed.s [MC][ELF] Error for sh_type, sh_flags or sh_entsize change 2020-02-21 15:44:14 -08:00
section-unique-err1.s
section-unique-err2.s
section-unique-err3.s
section-unique-err4.s
section-unique.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
section.s Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
set.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
size.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
sleb.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
strtab-suffix-opt.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
subsection.s
subtraction-error.s
symbol-names.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
symver-msvc.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
symver-pr23914.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
symver.s Revert r369233. 2019-08-23 18:01:13 +00:00
target-in-same-section.s [MC] Don't resolve relocations referencing STB_LOCAL STT_GNU_IFUNC 2020-01-13 23:36:06 -08:00
tls-i386.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
tls.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
type-propagate.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
type.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
uleb-ehtable.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
uleb.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
undef-temp.s
undef.s [MC] Emit unused undefined symbol even if its binding is not set 2019-11-08 14:47:48 -08:00
undefined-debug.s Recommit r348243 - "[llvm-mc] - Do not crash when referencing undefined debug sections." 2018-12-05 10:43:58 +00:00
undefined-directional.s
version.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
weak-diff.s [llvm-mc] - Produce R_X86_64_PLT32 for "call/jmp foo". 2018-02-20 10:17:57 +00:00
weak-relocation.s [llvm-mc] - Produce R_X86_64_PLT32 for "call/jmp foo". 2018-02-20 10:17:57 +00:00
weak.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
weakref-plt.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
weakref-reloc.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
weakref.s [MC] Emit unused undefined symbol even if its binding is not set 2019-11-08 14:47:48 -08:00
x86_64-reloc-sizetest.s
zero.s [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00