diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp index a2755adc7fa..9e1ff1cd6d2 100644 --- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp +++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp @@ -669,6 +669,8 @@ void SanitizerCoverageModule::InjectCoverageAtBlock(Function &F, BasicBlock &BB, auto GuardVar = new GlobalVariable( *F.getParent(), Int64Ty, false, GlobalVariable::LinkOnceODRLinkage, Constant::getNullValue(Int64Ty), "__sancov_guard." + F.getName()); + if (auto Comdat = F.getComdat()) + GuardVar->setComdat(Comdat); // TODO: add debug into to GuardVar. GuardVar->setSection(SanCovTracePCGuardSection); auto GuardPtr = IRB.CreatePointerCast(GuardVar, IntptrPtrTy); |