diff --git a/NEWS b/NEWS index c5cff5310..42ad55dbc 100644 --- a/NEWS +++ b/NEWS @@ -30,6 +30,12 @@ New in spot 2.3.1.dev (not yet released) anymore and should be replaced by the newly-introduced --format=%x for consistency with tools producing automata. + Backward-incompatible changes: + + - spot::acc_cond::mark_t::operator bool() has been marked as + explicit. The implicit converion to bool (and, via bool, to int) + was a source of bugs. + New in spot 2.3.1 (2017-02-20) diff --git a/spot/twa/acc.hh b/spot/twa/acc.hh index 758ac476f..197804d3d 100644 --- a/spot/twa/acc.hh +++ b/spot/twa/acc.hh @@ -98,7 +98,7 @@ namespace spot return id >= o.id; } - operator bool() const + explicit operator bool() const { return id != 0; } diff --git a/spot/twaalgos/remfin.cc b/spot/twaalgos/remfin.cc index 87d8c90ef..d25c26205 100644 --- a/spot/twaalgos/remfin.cc +++ b/spot/twaalgos/remfin.cc @@ -260,7 +260,7 @@ namespace spot i -= f; for (auto s: states) { - bool acc = aut->state_acc_sets(s) & i; + bool acc{aut->state_acc_sets(s) & i}; for (auto& t: aut->out(s)) res->new_acc_edge(s, t.dst, t.cond, acc); } @@ -282,7 +282,7 @@ namespace spot acc_cond::mark_t acc = aut->state_acc_sets(s); if (acc.has(r)) continue; - bool jacc = acc & inf_alone; + bool jacc{acc & inf_alone}; bool cacc = fin_alone.has(r) || acc.has(r + 1); for (auto& t: aut->out(s)) {