diff options
author | Cristian Cadar <cristic@cs.stanford.edu> | 2011-03-30 11:25:16 +0000 |
---|---|---|
committer | Cristian Cadar <cristic@cs.stanford.edu> | 2011-03-30 11:25:16 +0000 |
commit | 4a5dd9353adc23bac73fc80a7598422f6fcd4b4f (patch) | |
tree | 1072bfaa624d479f96ae6069c48a960a29049239 /lib | |
parent | b06bb734c1c309c5011d6148ebc6caacd9663400 (diff) | |
download | klee-4a5dd9353adc23bac73fc80a7598422f6fcd4b4f.tar.gz |
Fixed bug in WeightedRandomSearcher (CoveringNew). Patch by David
Ramos: "I found a nasty little bug that I'm guess dates back to removing all that foreach() syntactic sugar. It made stats::minDistToUncovered = 0 at all program points, rendering WeightedRandomSearcher (CoveringNew) pretty worthless." git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@128536 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Core/StatsTracker.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Core/StatsTracker.cpp b/lib/Core/StatsTracker.cpp index 1c963bfc..8d2ec479 100644 --- a/lib/Core/StatsTracker.cpp +++ b/lib/Core/StatsTracker.cpp @@ -209,8 +209,10 @@ StatsTracker::StatsTracker(Executor &_executor, std::string _objectFilename, executor.addTimer(new WriteStatsTimer(this), StatsWriteInterval); - if (updateMinDistToUncovered) + if (updateMinDistToUncovered) { + computeReachableUncovered(); executor.addTimer(new UpdateReachableTimer(this), UncoveredUpdateInterval); + } } if (OutputIStats) { @@ -607,7 +609,7 @@ void StatsTracker::computeReachableUncovered() { for (Function::iterator bbIt = fnIt->begin(), bb_ie = fnIt->end(); bbIt != bb_ie; ++bbIt) { for (BasicBlock::iterator it = bbIt->begin(), ie = bbIt->end(); - it != it; ++it) { + it != ie; ++it) { if (isa<CallInst>(it) || isa<InvokeInst>(it)) { CallSite cs(it); if (isa<InlineAsm>(cs.getCalledValue())) { @@ -653,7 +655,7 @@ void StatsTracker::computeReachableUncovered() { for (Function::iterator bbIt = fnIt->begin(), bb_ie = fnIt->end(); bbIt != bb_ie; ++bbIt) { for (BasicBlock::iterator it = bbIt->begin(), ie = bbIt->end(); - it != it; ++it) { + it != ie; ++it) { instructions.push_back(it); unsigned id = infos.getInfo(it).id; sm.setIndexedValue(stats::minDistToReturn, @@ -725,7 +727,7 @@ void StatsTracker::computeReachableUncovered() { for (Function::iterator bbIt = fnIt->begin(), bb_ie = fnIt->end(); bbIt != bb_ie; ++bbIt) { for (BasicBlock::iterator it = bbIt->begin(), ie = bbIt->end(); - it != it; ++it) { + it != ie; ++it) { unsigned id = infos.getInfo(it).id; instructions.push_back(&*it); sm.setIndexedValue(stats::minDistToUncovered, |