diff options
author | vanhauser-thc <vh@thc.org> | 2024-05-19 13:47:53 +0200 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2024-05-19 13:47:53 +0200 |
commit | 31a8beb44967207a8eecc17440783304493f145a (patch) | |
tree | d9b3ae326001b31ba7f207d17da479cc2a04141e | |
parent | 56d5aa3101945e81519a3fac8783d0d8fad82779 (diff) | |
download | afl++-31a8beb44967207a8eecc17440783304493f145a.tar.gz |
support new llvm 19 changes
-rw-r--r-- | docs/Changelog.md | 2 | ||||
-rw-r--r-- | instrumentation/afl-llvm-common.cc | 4 | ||||
-rw-r--r-- | instrumentation/compare-transform-pass.so.cc | 14 | ||||
-rw-r--r-- | src/afl-cc.c | 2 |
4 files changed, 16 insertions, 6 deletions
diff --git a/docs/Changelog.md b/docs/Changelog.md index 6736e42b..4c77b2b8 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -23,6 +23,7 @@ - disable xml/curl/g_ string transform functions because we do not check for null pointers ... TODO - ensure shared memory variables are visible in weird build setups + - compatability to new LLVM 19 changes * afl-cmin - work with input files that have a space * afl-showmap @@ -68,7 +69,6 @@ - Prevent temporary files being left behind on aborted afl-whatsup - More CPU benchmarks added to benchmark/ - ### Version ++4.10c (release) - afl-fuzz: - default power schedule is now EXPLORE, due a fix in fast schedules diff --git a/instrumentation/afl-llvm-common.cc b/instrumentation/afl-llvm-common.cc index ed9268dc..50954324 100644 --- a/instrumentation/afl-llvm-common.cc +++ b/instrumentation/afl-llvm-common.cc @@ -136,7 +136,11 @@ bool isIgnoreFunction(const llvm::Function *F) { for (auto const &ignoreListFunc : ignoreList) { +#if LLVM_VERSION_MAJOR >= 19 + if (F->getName().starts_with(ignoreListFunc)) { return true; } +#else if (F->getName().startswith(ignoreListFunc)) { return true; } +#endif } diff --git a/instrumentation/compare-transform-pass.so.cc b/instrumentation/compare-transform-pass.so.cc index 496d69fc..36149f35 100644 --- a/instrumentation/compare-transform-pass.so.cc +++ b/instrumentation/compare-transform-pass.so.cc @@ -54,6 +54,12 @@ #define nullptr 0 #endif +#if LLVM_MAJOR >= 19 + #define STARTSWITH starts_with +#else + #define STARTSWITH startswith +#endif + #include <set> #include "afl-llvm-common.h" @@ -532,10 +538,10 @@ bool CompareTransform::transformCmps(Module &M, const bool processStrcmp, } if (!isSizedcmp) needs_null = true; - if (Callee->getName().startswith("g_") || - Callee->getName().startswith("curl_") || - Callee->getName().startswith("Curl_") || - Callee->getName().startswith("xml")) + if (Callee->getName().STARTSWITH("g_") || + Callee->getName().STARTSWITH("curl_") || + Callee->getName().STARTSWITH("Curl_") || + Callee->getName().STARTSWITH("xml")) nullCheck = true; Value *sizedValue = isSizedcmp ? callInst->getArgOperand(2) : NULL; diff --git a/src/afl-cc.c b/src/afl-cc.c index c872b2eb..07155676 100644 --- a/src/afl-cc.c +++ b/src/afl-cc.c @@ -2844,7 +2844,7 @@ static void maybe_usage(aflcc_state_t *aflcc, int argc, char **argv) { " The best is LTO but it often needs RANLIB and AR settings outside " "of afl-cc.\n\n"); -#if LLVM_MAJOR > 10 || (LLVM_MAJOR == 10 && LLVM_MINOR > 0) +#if LLVM_MAJOR >= 11 || (LLVM_MAJOR == 10 && LLVM_MINOR > 0) #define NATIVE_MSG \ " LLVM-NATIVE: use llvm's native PCGUARD instrumentation (less " \ "performant)\n" |