Commit b6e44e6b authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

acc: strengthen is_generalized_rabin() and is_generalized_streett()

* spot/twa/ These functions were segfaulting on acceptance
conditions such as "Acceptance: 3 t" or "Acceptance: 3 f".
The issue was revealed on branch "next" by the change that print_dot()
display the acceptance condition by default, but we want the fix on
master as well.
* NEWS: Mention the issue.
parent 651a2720
Pipeline #967 passed with stage
in 184 minutes and 3 seconds
New in spot (not yet released)
Nothing yet.
Bugs fixed:
- acc_cond::is_generalized_rabin() and
acc_cond::is_generalized_streett() would segfault on weird
acceptance conditions such as "3 t" or "3 f".
New in spot 2.5.1 (2018-02-20)
......@@ -659,7 +659,10 @@ namespace spot
return true;
if (code_.is_t()
// "Acceptance: 0 f" is caught by is_generalized_rabin() above.
// Therefore is_f() below catches "Acceptance: n f" with n>0.
if (code_.is_f()
|| code_.is_t()
|| code_.back().sub.op != acc_op::Or)
return false;
......@@ -740,7 +743,10 @@ namespace spot
return true;
if (code_.is_f()
// "Acceptance: 0 t" is caught by is_generalized_buchi() above.
// Therefore is_t() below catches "Acceptance: n t" with n>0.
if (code_.is_t()
|| code_.is_f()
|| code_.back().sub.op != acc_op::And)
return false;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment