about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--lib/Core/Executor.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 279d5f3a..465100f4 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1238,14 +1238,13 @@ Executor::StatePair Executor::fork(ExecutionState &current, ref<Expr> condition,
 void Executor::addConstraint(ExecutionState &state, ref<Expr> condition) {
   const auto& [isMeta, patchNo] = Differentiator::extractPatchNumber(condition);
   if (isMeta) {
-    if (state.patchNo && patchNo != state.patchNo) {
+    if (state.patchNo && patchNo && patchNo != state.patchNo) {
       terminateStateEarly(state, "ignore patch combination",
                           StateTerminationType::SilentExit);
       return;
     }
     state.patchLocs++;
-    if (!state.patchNo)
-      differ.revisions.insert(state.patchNo = patchNo);
+    differ.revisions.insert(state.patchNo |= patchNo);
     return;
   }