about summary refs log tree commit diff homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Core/SpecialFunctionHandler.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/Core/SpecialFunctionHandler.cpp b/lib/Core/SpecialFunctionHandler.cpp
index a36d4324..a853d6ad 100644
--- a/lib/Core/SpecialFunctionHandler.cpp
+++ b/lib/Core/SpecialFunctionHandler.cpp
@@ -461,12 +461,10 @@ void SpecialFunctionHandler::handleEhUnwindRaiseExceptionImpl(
     ExecutionState &state, KInstruction *target,
     std::vector<ref<Expr>> &arguments) {
   if (arguments.size() != 1) {
-    executor.terminateStateOnError(
-        state,
-        "Internal Error: Incorrect number of arguments to "
-        "_klee_eh_Unwind_RaiseException_impl, "
-        "should not happen",
-        Executor::Unhandled);
+    executor.terminateStateOnExecError(
+        state, "Internal Error: Incorrect number of arguments to "
+               "_klee_eh_Unwind_RaiseException_impl, "
+               "should not happen");
     return;
   }
 
@@ -478,12 +476,11 @@ void SpecialFunctionHandler::handleEhUnwindRaiseExceptionImpl(
     return;
   }
 
-  if (isa_and_nonnull<SearchPhaseUnwindingInformation>(
-          state.unwindingInformation)) {
-    executor.terminateStateOnError(
+  if (state.unwindingInformation &&
+      isa<SearchPhaseUnwindingInformation>(state.unwindingInformation)) {
+    executor.terminateStateOnExecError(
         state,
-        "Internal error: Unwinding restarted during an ongoing search phase",
-        Executor::Unhandled);
+        "Internal error: Unwinding restarted during an ongoing search phase");
     return;
   }