about summary refs log tree commit diff
path: root/src/afl-cc.c
diff options
context:
space:
mode:
authorChristian Holler (:decoder) <choller@mozilla.com>2024-01-26 15:46:56 +0100
committerGitHub <noreply@github.com>2024-01-26 14:46:56 +0000
commit58b80b68bc5538bad2cf4c858229111f58282424 (patch)
treea08a3e016574cc5901a66b0797fde3ff8fc1146c /src/afl-cc.c
parent2f9eeef60cdd4ad43f8066af78009acd660a426c (diff)
downloadafl++-58b80b68bc5538bad2cf4c858229111f58282424.tar.gz
Dynamic instrumentation filtering for LLVM native (#1971)
* Add two dynamic instrumentation filter methods to runtime

* Always use pc-table with native pcguard

* Add make_symbol_list.py and README
Diffstat (limited to 'src/afl-cc.c')
-rw-r--r--src/afl-cc.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/afl-cc.c b/src/afl-cc.c
index 6d8e1024..73487188 100644
--- a/src/afl-cc.c
+++ b/src/afl-cc.c
@@ -1920,35 +1920,27 @@ void add_native_pcguard(aflcc_state_t *aflcc) {
   /* If llvm-config doesn't figure out LLVM_MAJOR, just
    go on anyway and let compiler complain if doesn't work. */
 
-  if (aflcc->instrument_opt_mode & INSTRUMENT_OPT_CODECOV) {
-
 #if LLVM_MAJOR > 0 && LLVM_MAJOR < 6
-    FATAL("pcguard instrumentation with pc-table requires LLVM 6.0.1+");
+  FATAL("pcguard instrumentation with pc-table requires LLVM 6.0.1+");
 #else
   #if LLVM_MAJOR == 0
-    WARNF(
-        "pcguard instrumentation with pc-table requires LLVM 6.0.1+"
-        " otherwise the compiler will fail");
+  WARNF(
+      "pcguard instrumentation with pc-table requires LLVM 6.0.1+"
+      " otherwise the compiler will fail");
   #endif
+  if (aflcc->instrument_opt_mode & INSTRUMENT_OPT_CODECOV) {
+
     insert_param(aflcc,
                  "-fsanitize-coverage=trace-pc-guard,bb,no-prune,pc-table");
-#endif
 
   } else {
 
-#if LLVM_MAJOR > 0 && LLVM_MAJOR < 4
-    FATAL("pcguard instrumentation requires LLVM 4.0.1+");
-#else
-  #if LLVM_MAJOR == 0
-    WARNF(
-        "pcguard instrumentation requires LLVM 4.0.1+"
-        " otherwise the compiler will fail");
-  #endif
-    insert_param(aflcc, "-fsanitize-coverage=trace-pc-guard");
-#endif
+    insert_param(aflcc, "-fsanitize-coverage=trace-pc-guard,pc-table");
 
   }
 
+#endif
+
 }
 
 void add_optimized_pcguard(aflcc_state_t *aflcc) {