diff options
author | Andrea Mattavelli <andreamattavelli@users.noreply.github.com> | 2017-02-21 22:23:52 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-21 22:23:52 +0000 |
commit | 62ee2e574b9f920e6679c91da25f8941552277d9 (patch) | |
tree | b476d2df666340ad26f63d8fd3c4e07b2a248f11 /lib/Core | |
parent | 27f414cc48bf086552ee4cba7784354c162a8301 (diff) | |
parent | 70715151746a24c4c6919292956111b00fcd3a26 (diff) | |
download | klee-62ee2e574b9f920e6679c91da25f8941552277d9.tar.gz |
Merge pull request #514 from delcypher/fix_klee_get_direct_call_bitcast_weak_alias
Fix assertion failure when klee::getDirectCallTarget() is used on call to bitcasted weak alias
Diffstat (limited to 'lib/Core')
-rw-r--r-- | lib/Core/StatsTracker.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Core/StatsTracker.cpp b/lib/Core/StatsTracker.cpp index 97ed26ea..dbd86524 100644 --- a/lib/Core/StatsTracker.cpp +++ b/lib/Core/StatsTracker.cpp @@ -167,7 +167,8 @@ static bool instructionIsCoverable(Instruction *i) { } else { Instruction *prev = --it; if (isa<CallInst>(prev) || isa<InvokeInst>(prev)) { - Function *target = getDirectCallTarget(prev); + Function *target = + getDirectCallTarget(prev, /*moduleIsFullyLinked=*/true); if (target && target->doesNotReturn()) return false; } @@ -690,7 +691,8 @@ void StatsTracker::computeReachableUncovered() { // (which should be correct anyhow). callTargets.insert(std::make_pair(it, std::vector<Function*>())); - } else if (Function *target = getDirectCallTarget(cs)) { + } else if (Function *target = getDirectCallTarget( + cs, /*moduleIsFullyLinked=*/true)) { callTargets[it].push_back(target); } else { callTargets[it] = |