1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/test/Object
Fangrui Song 72e7abe0f8 [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed relocation entries
Summary:
getRelocatedValue may compute incorrect value for SHT_RELA-typed relocation entries.

// DWARFDataExtractor.cpp
uint64_t DWARFDataExtractor::getRelocatedValue(uint32_t Size, uint32_t *Off,
...
  // This formula is correct for REL, but may be incorrect for RELA if the value
  // stored in the location (getUnsigned(Off, Size)) is not zero.
  return getUnsigned(Off, Size) + Rel->Value;

In this patch, we

* refactor these visit* functions to include a new parameter `uint64_t A`.
  Since these visit* functions are no longer used as visitors, rename them to resolve*.
  + REL: A is used as the addend. A is the value stored in the location where the
    relocation applies: getUnsigned(Off, Size)
  + RELA: The addend encoded in RelocationRef is used, e.g. getELFAddend(R)
* and add another set of supports* functions to check if a given relocation type is handled.
  DWARFObjInMemory uses them to fail early.

Reviewers: echristo, dblaikie

Reviewed By: echristo

Subscribers: mgorny, aprantl, aheejin, fedor.sergeev, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57939

llvm-svn: 356729
2019-03-22 02:43:11 +00:00
..
AArch64 [obj2yaml] - Dump the sh_entsize section field. 2019-01-28 15:05:10 +00:00
AMDGPU [yaml2obj]Allow explicit symbol indexes in relocations and emit error for bad names 2019-03-12 17:00:25 +00:00
ARM
Inputs [Object] Fix reading objects created with -fembed-bitcode-marker 2019-03-21 21:01:31 +00:00
Lanai [yaml2obj]Allow explicit symbol indexes in relocations and emit error for bad names 2019-03-12 17:00:25 +00:00
Mips [obj2yaml] - Dump the sh_entsize section field. 2019-01-28 15:05:10 +00:00
RISCV
X86 [yaml2obj]Allow explicit symbol indexes in relocations and emit error for bad names 2019-03-12 17:00:25 +00:00
ar-create.test [libObject] Tweak expected error output from llvm-ar 2019-01-15 22:03:08 +00:00
ar-error.test [libObject] Tweak expected error output from llvm-ar 2019-01-15 22:03:08 +00:00
archive-darwin-duplicates.test Give same-named members unique timestamps on Darwin in llvm-ar. 2018-10-04 18:49:21 +00:00
archive-delete.test
archive-error-tmp.txt
archive-extract-dir.test
archive-extract.test [libObject] Tweak expected error output from llvm-ar 2019-01-15 22:03:08 +00:00
archive-format.test [Object] Deduplicate long archive member names 2018-12-19 16:15:05 +00:00
archive-long-filenames-no-null-terminator.test
archive-long-index.test
archive-move.test
archive-pad.test
archive-replace-pos.test
archive-symtab.test llvm-ar: Darwin archive format fixes. 2018-10-10 21:07:02 +00:00
archive-thin-create.test
archive-thin-paths.test
archive-thin-read.test
archive-toc.test [llvm-ar] Use POSIX-specified timestamps for 'tv'. 2018-10-05 23:25:39 +00:00
archive-update.test
check_binary_output.ll
coff-archive-short.test
coff-archive.test
coff-empty-drectve.test
coff-invalid.test
coff-weak-externals.test
corrupt.test
directory.ll
dllimport-globalref.ll
dllimport.ll
dyn-rel-relocation.test
dynamic-reloc.test
elf-invalid-phdr.test
elf-reloc-no-sym.test
elf-unknown-type.test
invalid-alignment.test
invalid.test [DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed relocation entries 2019-03-22 02:43:11 +00:00
kext.test
lit.local.cfg
macho-invalid.test
mangle-ir.ll
mri1.test
mri2.test
mri3.test
mri4.test
mri5.test
mri-addlib.test
mri-addmod.test
mri-crlf.test
multi-module.ll
nm-archive.test
nm-bitcode.test [Object] Fix reading objects created with -fembed-bitcode-marker 2019-03-21 21:01:31 +00:00
nm-darwin-m.test Limit dyld image suffixes guessed by guessLibraryShortName() 2019-01-24 20:59:44 +00:00
nm-error.test
nm-irix6.test
nm-pe-image.test
nm-shared-object.test [llvm-nm] Write "no symbol" output to stderr 2018-10-05 21:10:03 +00:00
nm-trivial-object.test [llvm-nm] Report '.comment' ELF sections as 'n' instead of '?' 2019-02-01 17:38:08 +00:00
nm-universal-binary.test
nm-weak-global-macho.test
no-section-header-string-table.test
no-section-table.test
obj2yaml-coff-long-file-symbol.test
obj2yaml-coff-long-section-name.test
obj2yaml-coff-section-aux-symbol.test
obj2yaml-coff-weak-external.test
obj2yaml-invalid-reloc.test Fix BB after r354661 2019-02-22 08:58:23 +00:00
obj2yaml-sectiongroup.test
obj2yaml.test Fix BB after r354661 2019-02-22 08:58:23 +00:00
objc-imageinfo-coff.ll
objc-imageinfo-elf.ll
objc-imageinfo-macho.ll
objdump-export-list.test
objdump-file-header.test
objdump-no-sectionheaders.test [llvm-objdump] - Print LMAs when dumping section headers. 2019-01-28 14:11:35 +00:00
objdump-private-headers.test
objdump-reloc-shared.test
objdump-relocations.test [WebAssembly] Rename relocations from R_WEBASSEMBLY_ to R_WASM_ 2019-02-04 17:28:46 +00:00
objdump-section-content.test
objdump-sectionheaders.test [llvm-objdump] - Print LMAs when dumping section headers. 2019-01-28 14:11:35 +00:00
objdump-shndx.test Implemented sane default for llvm-objdump's relocation Value format 2018-06-01 05:31:58 +00:00
objdump-symbol-table.test [llvm][test] Update tests using objdump 2018-11-11 18:40:33 +00:00
pr25877.test
readobj-absent.test
readobj-elf-versioning.test
readobj-shared-object.test [llvm-readobj] Display section names for STT_SECTION symbols. 2019-03-01 17:31:32 +00:00
readobj.test
relocation-executable.test
simple-archive.test
size-trivial-macho.test
stackmap-dump.test
wasm-bad-metadata-version.yaml [WebAssembly] Store section alignment as a power of 2 2019-01-16 01:34:48 +00:00
wasm-duplicate-name.test
wasm-invalid-file.yaml Fix use of echo command in test script 2018-05-30 03:26:28 +00:00
wasm-invalid-section-order.test [WebAssembly] Check if the section order is correct 2018-12-15 00:58:12 +00:00
wasm-invalid-start.test
wasm-missing-version.test
wasm-relocs-and-producers.yaml [WebAssembly] Generalize section ordering constraints 2019-02-20 02:22:36 +00:00
wasm-string-outside-section.test [WASM] Fix overflow when reading custom section 2018-08-08 16:34:03 +00:00
yaml2obj-coff-invalid-alignment.test
yaml2obj-coff-multi-doc.test
yaml2obj-elf-alignment.yaml
yaml2obj-elf-bits-endian.test
yaml2obj-elf-file-headers-with-e_flags.yaml
yaml2obj-elf-file-headers.yaml
yaml2obj-elf-multi-doc.test
yaml2obj-elf-rel-noref.yaml [yaml2obj]Allow explicit symbol indexes in relocations and emit error for bad names 2019-03-12 17:00:25 +00:00
yaml2obj-elf-rel.yaml
yaml2obj-elf-section-basic.yaml
yaml2obj-elf-section-invalid-size.yaml
yaml2obj-elf-symbol-basic.yaml
yaml2obj-elf-symbol-LocalGlobalWeak.yaml
yaml2obj-elf-symbol-visibility.yaml
yaml2obj-invalid.yaml
yaml2obj-readobj.test [llvm-readobj] [COFF] Print the symbol index for relocations 2019-01-03 08:08:23 +00:00