about summary refs log tree commit diff
path: root/llvm_mode
diff options
context:
space:
mode:
Diffstat (limited to 'llvm_mode')
-rw-r--r--llvm_mode/LLVMInsTrim.so.cc24
-rw-r--r--llvm_mode/afl-llvm-pass.so.cc22
2 files changed, 35 insertions, 11 deletions
diff --git a/llvm_mode/LLVMInsTrim.so.cc b/llvm_mode/LLVMInsTrim.so.cc
index 5b7b79e1..9f5bf2a7 100644
--- a/llvm_mode/LLVMInsTrim.so.cc
+++ b/llvm_mode/LLVMInsTrim.so.cc
@@ -480,13 +480,25 @@ struct InsTrim : public ModulePass {
 
     }
 
+    char modeline[100];
+    snprintf(modeline, sizeof(modeline), "%s%s%s%s", 
+          getenv("AFL_HARDEN")
+              ? "hardened"
+              : "non-hardened",
+          getenv("AFL_USE_ASAN")
+              ? ", ASAN"
+              : "",
+          getenv("AFL_USE_MSAN")
+              ? ", MSAN"
+              : "",
+          getenv("AFL_USE_UBSAN")
+              ? ", UBSAN"
+              : ""
+    );
+
     OKF("Instrumented %u locations (%llu, %llu) (%s mode)\n", total_instr,
-        total_rs, total_hs,
-        getenv("AFL_HARDEN")
-            ? "hardened"
-            : ((getenv("AFL_USE_ASAN") || getenv("AFL_USE_MSAN"))
-                   ? "ASAN/MSAN"
-                   : "non-hardened"));
+        total_rs, total_hs, modeline);
+
     return false;
 
   }
diff --git a/llvm_mode/afl-llvm-pass.so.cc b/llvm_mode/afl-llvm-pass.so.cc
index 2cd23adf..77d63ce4 100644
--- a/llvm_mode/afl-llvm-pass.so.cc
+++ b/llvm_mode/afl-llvm-pass.so.cc
@@ -467,14 +467,26 @@ bool AFLCoverage::runOnModule(Module &M) {
 
     if (!inst_blocks)
       WARNF("No instrumentation targets found.");
-    else
-      OKF("Instrumented %u locations (%s mode, ratio %u%%).", inst_blocks,
+    else {
+      char modeline[100];
+      snprintf(modeline, sizeof(modeline), "%s%s%s%s", 
           getenv("AFL_HARDEN")
               ? "hardened"
-              : ((getenv("AFL_USE_ASAN") || getenv("AFL_USE_MSAN"))
-                     ? "ASAN/MSAN"
-                     : "non-hardened"),
+              : "non-hardened",
+          getenv("AFL_USE_ASAN")
+              ? ", ASAN"
+              : "",
+          getenv("AFL_USE_MSAN")
+              ? ", MSAN"
+              : "",
+          getenv("AFL_USE_UBSAN")
+              ? ", UBSAN"
+              : ""
+         );
+      OKF("Instrumented %u locations (%s mode, ratio %u%%).", inst_blocks,
+          modeline,
           inst_ratio);
+    }
 
   }