Fully quote guards used by neverclaims.
Especially with should write !(p0) and not !p0, because p0 is usually #define'd by the user and he may have forgotten to quote the value of the macro. This issue was discovered by Kristin Yvonne Rozier and diagnosed by Gerard Holzmann. * src/tgbaalgos/neverclaim.cc (process_link): Call to_spin_string(..., true) to fully parentheses the string. * src/tgbatest/neverclaimread.test: Add a test.
This commit is contained in:
parent
2b5956c2d4
commit
ea6a1ffc22
4 changed files with 19 additions and 1 deletions
|
|
@ -186,7 +186,7 @@ namespace spot
|
|||
os_ << " :: (";
|
||||
const ltl::formula* f = bdd_to_formula(si->current_condition(),
|
||||
automata_->get_dict());
|
||||
to_spin_string(f, os_);
|
||||
to_spin_string(f, os_, true);
|
||||
f->destroy();
|
||||
state* current = si->current_state();
|
||||
os_ << ") -> goto " << get_state_label(current, out) << std::endl;
|
||||
|
|
|
|||
|
|
@ -118,5 +118,9 @@ do
|
|||
run 0 ../ltl2tgba -E -Pf.tgba -XN f.ltl2ba
|
||||
fi
|
||||
run 0 ../ltl2tgba -DS -NN -f "$f" > f.spot
|
||||
# Make sure there is no `!x' occurring in the
|
||||
# output. Because `x' is usually #define'd, we
|
||||
# should use `!(x)' in guards.
|
||||
grep '![^(].*->' f.spot && exit 1
|
||||
run 0 ../ltl2tgba -E -Pf.tgba -XN f.spot
|
||||
done <formulae
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue