about summary refs log tree commit diff homepage
path: root/lib/Core
diff options
context:
space:
mode:
authorJulian Büning <julian.buening@comsys.rwth-aachen.de>2020-12-23 18:23:06 +0100
committerCristian Cadar <c.cadar@imperial.ac.uk>2021-02-16 18:37:16 +0000
commit5f8d562181bce7c0d11eae0a597e3f534966e42c (patch)
treedbb6388af58c733905dac0d3e6c47b2917dc00f8 /lib/Core
parentb2157ca524c7c6ab8074f05b4c735a4fc237eb7d (diff)
downloadklee-5f8d562181bce7c0d11eae0a597e3f534966e42c.tar.gz
Executor: remove obsolete special case for __cxa_{re,}throw
__cxa_throw and __cxa_rethrow were not handled by special function handlers in
the final version of #966 (which introduced support for C++ exception handling)
Diffstat (limited to 'lib/Core')
-rw-r--r--lib/Core/Executor.cpp8
1 files changed, 1 insertions, 7 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 325e28ab..bf359c2d 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1772,14 +1772,8 @@ void Executor::executeCall(ExecutionState &state, KInstruction *ki, Function *f,
       return;
     }
 
-    // __cxa_throw & _rethrow are already handled in their
-    // SpecialFunctionHandlers and have already been redirected to their unwind
-    // destinations, so we must not transfer them to their regular targets.
     if (InvokeInst *ii = dyn_cast<InvokeInst>(i)) {
-      if (f->getName() != std::string("__cxa_throw") &&
-          f->getName() != std::string("__cxa_rethrow")) {
-        transferToBasicBlock(ii->getNormalDest(), i->getParent(), state);
-      }
+      transferToBasicBlock(ii->getNormalDest(), i->getParent(), state);
     }
   } else {
     // Check if maximum stack size was reached.