aboutsummaryrefslogtreecommitdiff
path: root/instrumentation/SanitizerCoveragePCGUARD.so.cc
diff options
context:
space:
mode:
authorhexcoder- <heiko@hexco.de>2021-04-17 22:32:33 +0200
committerhexcoder- <heiko@hexco.de>2021-04-17 22:32:33 +0200
commitec49c7fbf5b5dd2259ebfd4a92f6aad5b333c328 (patch)
tree5664d9d273bdb02e8d6865cf8b50600df4373365 /instrumentation/SanitizerCoveragePCGUARD.so.cc
parent00e54565ef109a6c697db77b19d1618e37092125 (diff)
downloadAFLplusplus-ec49c7fbf5b5dd2259ebfd4a92f6aad5b333c328.tar.gz
Change other LLVM modes to atomic increments
Diffstat (limited to 'instrumentation/SanitizerCoveragePCGUARD.so.cc')
-rw-r--r--instrumentation/SanitizerCoveragePCGUARD.so.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/instrumentation/SanitizerCoveragePCGUARD.so.cc b/instrumentation/SanitizerCoveragePCGUARD.so.cc
index 09cda9e2..dd2e1459 100644
--- a/instrumentation/SanitizerCoveragePCGUARD.so.cc
+++ b/instrumentation/SanitizerCoveragePCGUARD.so.cc
@@ -1080,6 +1080,12 @@ void ModuleSanitizerCoverage::InjectCoverageAtBlock(Function &F, BasicBlock &BB,
/* Load counter for CurLoc */
Value * MapPtrIdx = IRB.CreateGEP(MapPtr, CurLoc);
+
+#if 1 /* Atomic */
+ IRB.CreateAtomicRMW(llvm::AtomicRMWInst::BinOp::Add, MapPtrIdx, One,
+ llvm::AtomicOrdering::Monotonic);
+
+#else
LoadInst *Counter = IRB.CreateLoad(MapPtrIdx);
/* Update bitmap */
@@ -1095,7 +1101,7 @@ void ModuleSanitizerCoverage::InjectCoverageAtBlock(Function &F, BasicBlock &BB,
}
IRB.CreateStore(Incr, MapPtrIdx);
-
+#endif
// done :)
// IRB.CreateCall(SanCovTracePCGuard, Offset)->setCannotMerge();