about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile8
-rw-r--r--instrumentation/split-compares-pass.so.cc16
2 files changed, 20 insertions, 4 deletions
diff --git a/Dockerfile b/Dockerfile
index bdfa1c56..610c664d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -38,7 +38,7 @@ RUN echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu jammy main
 
 RUN apt-get update && apt-get full-upgrade -y && \
     apt-get -y install --no-install-suggests --no-install-recommends \
-    gcc-12 g++-12 gcc-12-plugin-dev gdb lcov \
+    gcc-11 g++-11 gcc-11-plugin-dev gdb lcov \
     clang-14 clang-tools-14 libc++1-14 libc++-14-dev \
     libc++abi1-14 libc++abi-14-dev libclang1-14 libclang-14-dev \
     libclang-common-14-dev libclang-cpp14 libclang-cpp14-dev liblld-14 \
@@ -53,8 +53,8 @@ RUN [ "$TARGETPLATFORM" = "linux/amd64" ] && \
 
 RUN rm -rf /var/lib/apt/lists/*
 
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 0
-RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 0
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 0
+RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 0
 
 ENV LLVM_CONFIG=llvm-config-14
 ENV AFL_SKIP_CPUFREQ=1
@@ -67,7 +67,7 @@ RUN cd /afl-cov && make install && cd ..
 COPY . /AFLplusplus
 WORKDIR /AFLplusplus
 
-RUN export CC=gcc-12 && export CXX=g++-12 && make clean && \
+RUN export CC=gcc-11 && export CXX=g++-11 && make clean && \
     make distrib && make install && make clean
 
 RUN sh -c 'echo set encoding=utf-8 > /root/.vimrc'
diff --git a/instrumentation/split-compares-pass.so.cc b/instrumentation/split-compares-pass.so.cc
index d7bb7aba..e069cabe 100644
--- a/instrumentation/split-compares-pass.so.cc
+++ b/instrumentation/split-compares-pass.so.cc
@@ -566,8 +566,16 @@ bool SplitComparesTransform::splitCompare(CmpInst *cmp_inst, Module &M,
     case CmpInst::ICMP_NE:
     case CmpInst::ICMP_UGT:
     case CmpInst::ICMP_ULT:
+    case CmpInst::ICMP_UGE:
+    case CmpInst::ICMP_ULE:
+    case CmpInst::ICMP_SGT:
+    case CmpInst::ICMP_SLT:
+    case CmpInst::ICMP_SGE:
+    case CmpInst::ICMP_SLE:
       break;
     default:
+      fprintf(stderr, "Error: split-compare: Unsupported predicate (%u)\n",
+              pred);
       // unsupported predicate!
       return false;
 
@@ -581,6 +589,7 @@ bool SplitComparesTransform::splitCompare(CmpInst *cmp_inst, Module &M,
   if (!intTyOp0) {
 
     // not an integer type
+    fprintf(stderr, "Error: split-compare: not an integer type\n");
     return false;
 
   }
@@ -675,6 +684,12 @@ bool SplitComparesTransform::splitCompare(CmpInst *cmp_inst, Module &M,
 
     }
 
+    case CmpInst::ICMP_SGE:
+    case CmpInst::ICMP_SLE:
+    case CmpInst::ICMP_SGT:
+    case CmpInst::ICMP_SLT:
+    case CmpInst::ICMP_UGE:
+    case CmpInst::ICMP_ULE:
     case CmpInst::ICMP_UGT:
     case CmpInst::ICMP_ULT: {
 
@@ -729,6 +744,7 @@ bool SplitComparesTransform::splitCompare(CmpInst *cmp_inst, Module &M,
     }
 
     default:
+      fprintf(stderr, "Error: split-compare: should not happen\n");
       return false;
 
   }