diff options
author | Frank Busse <bb0xfb@gmail.com> | 2020-06-25 21:35:25 +0100 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2020-07-30 16:44:31 +0100 |
commit | 661fba88fff0205ea258a1149907f2822458cd83 (patch) | |
tree | f9bc1fb96d55d55312dd10b19a0cf94a7ebe89e7 /lib/Core/Searcher.h | |
parent | 169022a56d62cdb2f15540a0c592c5f90fdb39cb (diff) | |
download | klee-661fba88fff0205ea258a1149907f2822458cd83.tar.gz |
introduce --rng-initial-seed=<unsigned>
* move global theRNG into Executor * pass theRNG via ctor to searchers * remove some type warnings from RNG.cpp Fixes #1023.
Diffstat (limited to 'lib/Core/Searcher.h')
-rw-r--r-- | lib/Core/Searcher.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Core/Searcher.h b/lib/Core/Searcher.h index baeafd84..fa0440b8 100644 --- a/lib/Core/Searcher.h +++ b/lib/Core/Searcher.h @@ -11,6 +11,7 @@ #define KLEE_SEARCHER_H #include "PTree.h" +#include "klee/ADT/RNG.h" #include "klee/System/Time.h" #include "llvm/Support/CommandLine.h" @@ -116,8 +117,10 @@ namespace klee { class RandomSearcher : public Searcher { std::vector<ExecutionState*> states; + RNG &theRNG; public: + explicit RandomSearcher(RNG &rng) : theRNG{rng} {} ExecutionState &selectState(); void update(ExecutionState *current, const std::vector<ExecutionState *> &addedStates, @@ -142,13 +145,14 @@ namespace klee { private: DiscretePDF<ExecutionState*> *states; + RNG &theRNG; WeightType type; bool updateWeights; double getWeight(ExecutionState*); public: - WeightedRandomSearcher(WeightType type); + WeightedRandomSearcher(WeightType type, RNG &rng); ~WeightedRandomSearcher(); ExecutionState &selectState(); @@ -191,12 +195,13 @@ namespace klee { */ class RandomPathSearcher : public Searcher { PTree &processTree; + RNG &theRNG; // Unique bitmask of this searcher const uint8_t idBitMask; public: - RandomPathSearcher(PTree &processTree); + RandomPathSearcher(PTree &processTree, RNG &rng); ~RandomPathSearcher(); ExecutionState &selectState(); |