about summary refs log tree commit diff
diff options
context:
space:
mode:
authorhexcoder- <heiko@hexco.de>2020-03-27 21:03:28 +0100
committerDominik Maier <domenukk@gmail.com>2020-04-01 13:10:05 +0200
commit3d6c58df53bf2fecc068d1a4d48fbe4926d6257d (patch)
tree904d367a964aa3cc638c63c2ac8948c42d588549
parent34c090a31db7939558bf0047f0f1693bbde76c1f (diff)
downloadafl++-3d6c58df53bf2fecc068d1a4d48fbe4926d6257d.tar.gz
part1 make it compilable for llvm 3.8.0 (ubuntu 16.04)
-rw-r--r--llvm_mode/afl-llvm-pass.so.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm_mode/afl-llvm-pass.so.cc b/llvm_mode/afl-llvm-pass.so.cc
index e8f449b1..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();