about summary refs log tree commit diff
path: root/llvm_mode/afl-clang-fast.c
diff options
context:
space:
mode:
authorAndrea Fioraldi <andreafioraldi@gmail.com>2020-02-19 20:48:26 +0100
committerGitHub <noreply@github.com>2020-02-19 20:48:26 +0100
commit97d34b52d78ccc56b2c8a7f00173121652c34f29 (patch)
tree9f4908092ab48a2fbe73017515d2f21d39284ef0 /llvm_mode/afl-clang-fast.c
parent42af8ee0597cc01885b5c0b5a7556b3aaecd826b (diff)
parent0fce34ec1639edd8175c46b485eb6fd012ca8c18 (diff)
downloadafl++-97d34b52d78ccc56b2c8a7f00173121652c34f29.tar.gz
Merge pull request #202 from vanhauser-thc/cmplog_routines
Cmplog routines for LLVM mode
Diffstat (limited to 'llvm_mode/afl-clang-fast.c')
-rw-r--r--llvm_mode/afl-clang-fast.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/llvm_mode/afl-clang-fast.c b/llvm_mode/afl-clang-fast.c
index 5e152e86..683b6bee 100644
--- a/llvm_mode/afl-clang-fast.c
+++ b/llvm_mode/afl-clang-fast.c
@@ -202,6 +202,14 @@ static void edit_params(u32 argc, char** argv) {
   if (cmplog_mode) {
 
     cc_params[cc_par_cnt++] = "-fsanitize-coverage=trace-pc-guard,trace-cmp";
+    
+    cc_params[cc_par_cnt++] = "-Xclang";
+    cc_params[cc_par_cnt++] = "-load";
+    cc_params[cc_par_cnt++] = "-Xclang";
+    cc_params[cc_par_cnt++] =
+        alloc_printf("%s/cmplog-routines-pass.so", obj_path);
+    
+    cc_params[cc_par_cnt++] = "-fno-inline";
 
   } else {
 
@@ -411,20 +419,12 @@ static void edit_params(u32 argc, char** argv) {
     switch (bit_mode) {
 
       case 0:
-        if (cmplog_mode)
-          cc_params[cc_par_cnt++] =
-              alloc_printf("%s/afl-llvm-cmplog-rt.o", obj_path);
-        else
-          cc_params[cc_par_cnt++] = alloc_printf("%s/afl-llvm-rt.o", obj_path);
+        cc_params[cc_par_cnt++] = alloc_printf("%s/afl-llvm-rt.o", obj_path);
         break;
 
       case 32:
-        if (cmplog_mode)
-          cc_params[cc_par_cnt++] =
-              alloc_printf("%s/afl-llvm-cmplog-rt-32.o", obj_path);
-        else
-          cc_params[cc_par_cnt++] =
-              alloc_printf("%s/afl-llvm-rt-32.o", obj_path);
+        cc_params[cc_par_cnt++] =
+            alloc_printf("%s/afl-llvm-rt-32.o", obj_path);
 
         if (access(cc_params[cc_par_cnt - 1], R_OK))
           FATAL("-m32 is not supported by your compiler");
@@ -432,12 +432,8 @@ static void edit_params(u32 argc, char** argv) {
         break;
 
       case 64:
-        if (cmplog_mode)
-          cc_params[cc_par_cnt++] =
-              alloc_printf("%s/afl-llvm-cmplog-rt-64.o", obj_path);
-        else
-          cc_params[cc_par_cnt++] =
-              alloc_printf("%s/afl-llvm-rt-64.o", obj_path);
+        cc_params[cc_par_cnt++] =
+            alloc_printf("%s/afl-llvm-rt-64.o", obj_path);
 
         if (access(cc_params[cc_par_cnt - 1], R_OK))
           FATAL("-m64 is not supported by your compiler");