diff options
author | vanhauser-thc <vh@thc.org> | 2023-02-20 15:43:54 +0100 |
---|---|---|
committer | vanhauser-thc <vh@thc.org> | 2023-02-20 15:43:54 +0100 |
commit | b786558dea5fd5dca471a0e36a8b420ff6a65846 (patch) | |
tree | f7055992a36cc143a00fab61dea7f652cc174432 | |
parent | ebaac23a514cd3950d4a6cb597bd921e13ab9baa (diff) | |
download | afl++-b786558dea5fd5dca471a0e36a8b420ff6a65846.tar.gz |
Revert "LLVM cmplog factoring custom Instruction iterator with added restriction"
This reverts commit 8bc3fa1df286aac46a0a724f64e2e07010d2497e.
-rw-r--r-- | instrumentation/afl-llvm-common.cc | 18 | ||||
-rw-r--r-- | instrumentation/afl-llvm-common.h | 2 | ||||
-rw-r--r-- | instrumentation/cmplog-instructions-pass.cc | 15 | ||||
-rw-r--r-- | instrumentation/cmplog-switches-pass.cc | 15 |
4 files changed, 30 insertions, 20 deletions
diff --git a/instrumentation/afl-llvm-common.cc b/instrumentation/afl-llvm-common.cc index b50269fe..dc34d191 100644 --- a/instrumentation/afl-llvm-common.cc +++ b/instrumentation/afl-llvm-common.cc @@ -582,24 +582,6 @@ bool isInInstrumentList(llvm::Function *F, std::string Filename) { } -template <class Iterator> -Iterator Unique(Iterator first, Iterator last) { - static_assert(std::is_trivially_copyable< - typename std::iterator_traits<Iterator> - >::value_type, "Invalid underlying type"); - - while (first != last) { - - Iterator next(first); - last = std::remove(++next, last, *first); - first = next; - - } - - return last; - -} - // Calculate the number of average collisions that would occur if all // location IDs would be assigned randomly (like normal afl/afl++). // This uses the "balls in bins" algorithm. diff --git a/instrumentation/afl-llvm-common.h b/instrumentation/afl-llvm-common.h index 8b8dc756..0112c325 100644 --- a/instrumentation/afl-llvm-common.h +++ b/instrumentation/afl-llvm-common.h @@ -9,7 +9,6 @@ #include <string> #include <fstream> #include <optional> -#include <type_traits> #include <sys/time.h> #include "llvm/Config/llvm-config.h" @@ -54,7 +53,6 @@ void initInstrumentList(); bool isInInstrumentList(llvm::Function *F, std::string Filename); unsigned long long int calculateCollisions(uint32_t edges); void scanForDangerousFunctions(llvm::Module *M); -template<class Iterator> Iterator Unique(Iterator, Iterator); #ifndef IS_EXTERN #define IS_EXTERN diff --git a/instrumentation/cmplog-instructions-pass.cc b/instrumentation/cmplog-instructions-pass.cc index c6fd7c56..bca1f927 100644 --- a/instrumentation/cmplog-instructions-pass.cc +++ b/instrumentation/cmplog-instructions-pass.cc @@ -138,6 +138,21 @@ llvmGetPassPluginInfo() { char CmpLogInstructions::ID = 0; #endif +template <class Iterator> +Iterator Unique(Iterator first, Iterator last) { + + while (first != last) { + + Iterator next(first); + last = std::remove(++next, last, *first); + first = next; + + } + + return last; + +} + bool CmpLogInstructions::hookInstrs(Module &M) { std::vector<Instruction *> icomps; diff --git a/instrumentation/cmplog-switches-pass.cc b/instrumentation/cmplog-switches-pass.cc index f4a9fbd7..cd0ae76d 100644 --- a/instrumentation/cmplog-switches-pass.cc +++ b/instrumentation/cmplog-switches-pass.cc @@ -131,6 +131,21 @@ llvmGetPassPluginInfo() { char CmplogSwitches::ID = 0; #endif +template <class Iterator> +Iterator Unique(Iterator first, Iterator last) { + + while (first != last) { + + Iterator next(first); + last = std::remove(++next, last, *first); + first = next; + + } + + return last; + +} + bool CmplogSwitches::hookInstrs(Module &M) { std::vector<SwitchInst *> switches; |