diff options
author | Dominik Maier <domenukk@gmail.com> | 2020-03-27 23:24:42 +0100 |
---|---|---|
committer | Dominik Maier <domenukk@gmail.com> | 2020-03-27 23:24:42 +0100 |
commit | 5e389a0970736030d6db59d27593e3173df5e18c (patch) | |
tree | 904d367a964aa3cc638c63c2ac8948c42d588549 /llvm_mode/afl-llvm-pass.so.cc | |
parent | 11414596077922dfccac6579df62d86bd7a758ef (diff) | |
parent | 7c76b7db04b7068c3b52f3a0eeaf19d468425e79 (diff) | |
download | afl++-5e389a0970736030d6db59d27593e3173df5e18c.tar.gz |
Less allocs
Diffstat (limited to 'llvm_mode/afl-llvm-pass.so.cc')
-rw-r--r-- | llvm_mode/afl-llvm-pass.so.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm_mode/afl-llvm-pass.so.cc b/llvm_mode/afl-llvm-pass.so.cc index fefd9edd..1c0a3c93 100644 --- a/llvm_mode/afl-llvm-pass.so.cc +++ b/llvm_mode/afl-llvm-pass.so.cc @@ -131,6 +131,20 @@ class AFLCoverage : public ModulePass { char AFLCoverage::ID = 0; +/* needed up to 3.9.0 */ +#if LLVM_VERSION_MAJOR == 3 && (LLVM_VERSION_MINOR < 9 || (LLVM_VERSION_MINOR == 9 && LLVM_VERSION_PATCH < 1)) +uint64_t PowerOf2Ceil(unsigned in) { + uint64_t in64 = in - 1; + in64 |= (in64 >> 1); + in64 |= (in64 >> 2); + in64 |= (in64 >> 4); + in64 |= (in64 >> 8); + in64 |= (in64 >> 16); + in64 |= (in64 >> 32); + return in64 + 1; +} +#endif + bool AFLCoverage::runOnModule(Module &M) { LLVMContext &C = M.getContext(); @@ -572,6 +586,7 @@ bool AFLCoverage::runOnModule(Module &M) { getenv("AFL_HARDEN") ? "hardened" : "non-hardened", getenv("AFL_USE_ASAN") ? ", ASAN" : "", getenv("AFL_USE_MSAN") ? ", MSAN" : "", + getenv("AFL_USE_CFISAN") ? ", CFISAN" : "", getenv("AFL_USE_UBSAN") ? ", UBSAN" : ""); OKF("Instrumented %u locations (%s mode, ratio %u%%).", inst_blocks, modeline, inst_ratio); |