about summary refs log tree commit diff
path: root/instrumentation/afl-llvm-common.h
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2023-01-20 22:12:35 +0000
committerDavid Carlier <devnexen@gmail.com>2023-01-20 22:12:35 +0000
commitafd2ea90dfdb9aa7668c482e7c427f95c4847843 (patch)
treee0ba7b95daf44f319bbbf0a6aa58f7d0048d3b32 /instrumentation/afl-llvm-common.h
parent5163a49350ed17149cb3c52bc79bd87e86402510 (diff)
downloadafl++-afd2ea90dfdb9aa7668c482e7c427f95c4847843.tar.gz
LLVM plugin 16+ support proposal.
- Lifting the standard to C++17.
- Beyond the cosmetic changes, it boils down to BasicBlock::getInstList being
  no longer available (and reading the header it is no accident).
Diffstat (limited to 'instrumentation/afl-llvm-common.h')
-rw-r--r--instrumentation/afl-llvm-common.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/instrumentation/afl-llvm-common.h b/instrumentation/afl-llvm-common.h
index dee5f9fc..0112c325 100644
--- a/instrumentation/afl-llvm-common.h
+++ b/instrumentation/afl-llvm-common.h
@@ -8,6 +8,7 @@
 #include <list>
 #include <string>
 #include <fstream>
+#include <optional>
 #include <sys/time.h>
 
 #include "llvm/Config/llvm-config.h"
@@ -35,6 +36,12 @@ typedef long double max_align_t;
 #if LLVM_VERSION_MAJOR >= 11
   #define MNAME M.getSourceFileName()
   #define FMNAME F.getParent()->getSourceFileName()
+  #if LLVM_VERSION_MAJOR >= 16
+  // None becomes deprecated
+  // the standard std::nullopt_t is recommended instead
+  // from C++17 and onwards.
+  constexpr std::nullopt_t None = std::nullopt;
+  #endif
 #else
   #define MNAME std::string("")
   #define FMNAME std::string("")