about summary refs log tree commit diff homepage
path: root/lib/Core
diff options
context:
space:
mode:
authorAndrea Mattavelli <andreamattavelli@users.noreply.github.com>2017-02-21 22:23:52 +0000
committerGitHub <noreply@github.com>2017-02-21 22:23:52 +0000
commit62ee2e574b9f920e6679c91da25f8941552277d9 (patch)
treeb476d2df666340ad26f63d8fd3c4e07b2a248f11 /lib/Core
parent27f414cc48bf086552ee4cba7784354c162a8301 (diff)
parent70715151746a24c4c6919292956111b00fcd3a26 (diff)
downloadklee-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.cpp6
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] =