fix classic threadsafe counters
MODIFY
instrumentation/afl-llvm-pass.so.cc
instrumentation/afl-llvm-pass.so.cc
@@ -662,10 +662,11 @@ bool AFLCoverage::runOnModule(Module &M) {
/* Update bitmap */
if (use_threadsafe_counters) { /* Atomic */
-
+ /*
#if LLVM_VERSION_MAJOR < 9
if (neverZero_counters_str !=
- NULL) { // with llvm 9 we make this the default as the bug in llvm
+ NULL) { // with llvm 9 we make this the default as the bug
+ in llvm
// is then fixed
#else
if (!skip_nozero) {
@@ -676,11 +677,15 @@ bool AFLCoverage::runOnModule(Module &M) {
} else {
+ */
IRB.CreateAtomicRMW(llvm::AtomicRMWInst::BinOp::Add, MapPtrIdx, One,
llvm::AtomicOrdering::Monotonic);
+ /*
}
+ */
+
} else {
LoadInst *Counter = IRB.CreateLoad(MapPtrIdx);
@@ -774,6 +779,7 @@ bool AFLCoverage::runOnModule(Module &M) {
}
+#if 0
if (use_threadsafe_counters) { /*Atomic NeverZero */
// handle the list of registered blocks to instrument
for (auto val : todo) {
@@ -885,6 +891,8 @@ bool AFLCoverage::runOnModule(Module &M) {
}
+#endif
+
}
/*

fix classic threadsafe counters