summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2017-08-25 01:24:54 +0000
committerJustin Bogner <mail@justinbogner.com>2017-08-25 01:24:54 +0000
commitad96ff1228e4fa51c84879c87d4bc4f55120d729 (patch)
treebcc46e604446cad2506c61839bf344924d5d0b48 /llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
parent12bd32937e06dbb404df3bd0c5633df49226d52e (diff)
downloadbcm5719-llvm-ad96ff1228e4fa51c84879c87d4bc4f55120d729.tar.gz
bcm5719-llvm-ad96ff1228e4fa51c84879c87d4bc4f55120d729.zip
[sanitizer-coverage] Make sure pc-tables aren't dead stripped
Add a reference to the PC array in llvm.used so that linkers that aggressively dead strip (like ld64) don't remove it. llvm-svn: 311742
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp')
-rw-r--r--llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
index c6f0d17f8fe..fdf265143fd 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
@@ -557,6 +557,10 @@ void SanitizerCoverageModule::CreatePCArray(Function &F,
FunctionPCsArray->setInitializer(
ConstantArray::get(ArrayType::get(Int8PtrTy, N), PCs));
FunctionPCsArray->setConstant(true);
+
+ // We don't reference the PCs array in any of our runtime functions, so we
+ // need to prevent it from being dead stripped.
+ appendToUsed(*F.getParent(), {FunctionPCsArray});
}
void SanitizerCoverageModule::CreateFunctionLocalArrays(
OpenPOWER on IntegriCloud