1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/Instrumentation/SanitizerCoverage
Fangrui Song b451f3588d [sanitizer] Place module_ctor/module_dtor in llvm.used
This removes an abuse of ELF linker behaviors while keeping Mach-O/COFF linker
behaviors unchanged.

ELF: when module_ctor is in a comdat, this patch removes reliance on a linker
abuse (an SHT_INIT_ARRAY in a section group retains the whole group) by using
SHF_GNU_RETAIN. No linker behavior difference when module_ctor is not in a comdat.

Mach-O: module_ctor gets `N_NO_DEAD_STRIP`. No linker behavior difference
because module_ctor is already referenced by a `S_MOD_INIT_FUNC_POINTERS`
section (GC root).

PE/COFF: no-op. SanitizerCoverage already appends module_ctor to `llvm.used`.
Other sanitizers: llvm.used for local linkage is not implemented in
`TargetLoweringObjectFileCOFF::emitLinkerDirectives` (once implemented or
switched to a non-local linkage, COFF can use module_ctor in comdat (i.e.
generalize ELF-specific rL301586)).

There is no object file size difference.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D106246
2021-07-21 14:03:26 -07:00
..
abort-in-entry-block.ll
backedge-pruning.ll
chains.ll
cmp-tracing-api-x86_32.ll
cmp-tracing-api-x86_64.ll
cmp-tracing.ll
coff-comdat.ll [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
coff-pc-table-inline-8bit-counters.ll [SanitizerCoverage] Use External on Windows 2021-03-22 23:05:36 -07:00
coff-pc-table-inline-bool-flag.ll [SanitizerCoverage] Use External on Windows 2021-03-22 23:05:36 -07:00
coff-used-ctor.ll
const-cmp-tracing.ll Revert "[TargetLowering] Only inspect attributes in the arguments for ArgListEntry" 2021-06-07 16:07:44 -07:00
coverage2-dbg.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
coverage-dbg.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
coverage.ll
crit-edge-sancov.ll [SantizerCoverage] handle missing DBG MD when inserting libcalls 2021-04-12 15:55:58 -07:00
div-tracing.ll Revert "[TargetLowering] Only inspect attributes in the arguments for ArgListEntry" 2021-06-07 16:07:44 -07:00
gep-tracing.ll
inline-8bit-counters.ll [SanitizerCoverage] Make __start_/__stop_ symbols extern_weak 2021-03-18 16:46:04 -07:00
inline-bool-flag.ll [sanitizer] Place module_ctor/module_dtor in llvm.used 2021-07-21 14:03:26 -07:00
interposable-symbol.ll [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
no-func.ll
opaque-ptr.ll [SanitizerCoverage] Support opaque pointers 2021-06-28 22:18:42 +02:00
pc-table.ll [SanitizerCoverage] Make __start_/__stop_ symbols extern_weak 2021-03-18 16:46:04 -07:00
postdominator_check.ll
seh.ll
stack-depth-variable-declared-by-user.ll [SanitizerCoverage] Fix global type check with opaque pointers 2021-06-29 20:32:14 +02:00
stack-depth.ll
switch-tracing.ll
trace-pc-guard-inline-8bit-counters.ll [IR][sanitizer] Set nounwind on module ctor/dtor, additionally set uwtable if -fasynchronous-unwind-tables 2021-04-21 15:58:20 -07:00
trace-pc-guard-inline-bool-flag.ll [IR][sanitizer] Set nounwind on module ctor/dtor, additionally set uwtable if -fasynchronous-unwind-tables 2021-04-21 15:58:20 -07:00
trace-pc-guard.ll [sanitizer] Place module_ctor/module_dtor in llvm.used 2021-07-21 14:03:26 -07:00
tracing-comdat.ll
tracing.ll
unreachable-critedge.ll
wineh.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00