fix instrumentlist for LTO with clang < 13
MODIFY
src/afl-cc.c
src/afl-cc.c
@@ -577,6 +577,8 @@ static void edit_params(u32 argc, char **argv, char **envp) {
#if defined(AFL_CLANG_LDPATH) && LLVM_MAJOR >= 13
cc_params[cc_par_cnt++] = "-Wl,--lto-legacy-pass-manager";
+#else
+ cc_params[cc_par_cnt++] = "-fno-experimental-new-pass-manager";
#endif
cc_params[cc_par_cnt++] = "-Wl,--allow-multiple-definition";

MODIFY
test/test-llvm-lto.sh
test/test-llvm-lto.sh
@@ -49,6 +49,9 @@ test -e ../afl-clang-lto -a -e ../SanitizerCoverageLTO.so && {
grep -q "No instrumentation targets found" test.out && {
$ECHO "$GREEN[+] llvm_mode LTO instrumentlist feature works correctly"
} || {
+ echo CUT------------------------------------------------------------------CUT
+ cat test.out
+ echo CUT------------------------------------------------------------------CUT
$ECHO "$RED[!] llvm_mode LTO instrumentlist feature failed"
CODE=1
}

fix instrumentlist for LTO with clang < 13