aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ModuleManager.cpp
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2017-03-17 22:17:29 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2017-03-17 22:17:29 +0000
commitc5aa6b94115d12986af7feff180f2ddf53498b06 (patch)
tree06a75d13b55084777afc16d77a4916970d4e9fc4 /clang/lib/Serialization/ModuleManager.cpp
parent51c962f72e9569d54dc9c853abf99e2c34fc41cf (diff)
downloadllvm-c5aa6b94115d12986af7feff180f2ddf53498b06.zip
llvm-c5aa6b94115d12986af7feff180f2ddf53498b06.tar.gz
llvm-c5aa6b94115d12986af7feff180f2ddf53498b06.tar.bz2
[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). Differential Revision: https://reviews.llvm.org/D30121 llvm-svn: 298158
Diffstat (limited to 'clang/lib/Serialization/ModuleManager.cpp')
0 files changed, 0 insertions, 0 deletions