llvm-project/llvm/test/Instrumentation
Evgeniy Stepanov 964f4663c4 [asan] Fix dead stripping of globals on Linux.
Use a combination of !associated, comdat, @llvm.compiler.used and
custom sections to allow dead stripping of globals and their asan
metadata. Sometimes.

Currently this works on LLD, which supports SHF_LINK_ORDER with
sh_link pointing to the associated section.

This also works on BFD, which seems to treat comdats as
all-or-nothing with respect to linker GC. There is a weird quirk
where the "first" global in each link is never GC-ed because of the
section symbols.

At this moment it does not work on Gold (as in the globals are never
stripped).

This is a second re-land of r298158. This time, this feature is
limited to -fdata-sections builds.

llvm-svn: 301587
2017-04-27 20:27:27 +00:00
..
AddressSanitizer [asan] Fix dead stripping of globals on Linux. 2017-04-27 20:27:27 +00:00
BoundsChecking
DataFlowSanitizer [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
EfficiencySanitizer [EfficiencySanitizer] Using '$' instead of '#' for struct counter name 2016-09-22 08:33:06 +00:00
InstrProfiling [Profile] PE binary coverage bug fix 2017-04-13 23:37:12 +00:00
MemorySanitizer Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
SanitizerCoverage [sanitizer-coverage] remove some more stale code 2017-04-19 22:42:11 +00:00
ThreadSanitizer ThreadSanitizer: don't track swifterror memory addresses 2017-02-15 18:57:06 +00:00