ignore false edges in emptiness checks and scc_info

Based on reports by Florian Renkin and Jens Kreber.

* spot/twaalgos/bfssteps.cc, spot/twaalgos/couvreurnew.cc,
spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gv04.cc,
spot/twaalgos/magic.cc, spot/twaalgos/sccinfo.cc
spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc: Ignore bddfalse edges.
* spot/twaalgos/gtec/gtec.hh: Remove debugging function.
* tests/core/neverclaimread.test: Adjust.
* tests/python/ecfalse.py: New test file.
* tests/Makefile.am: Add it.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2020-04-11 11:09:10 +02:00
parent 67fa19cb08
commit 0b25820211
13 changed files with 206 additions and 61 deletions

View file

@ -1,5 +1,5 @@
// -*- coding: utf-8 -*-
// Copyright (C) 2014, 2015, 2018 Laboratoire de Recherche et
// Copyright (C) 2014, 2015, 2018, 2020 Laboratoire de Recherche et
// Développement de l'Epita (LRDE)
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
@ -78,6 +78,10 @@ namespace spot
todo.pop_front();
for (auto i: a_->succ(src))
{
// skip false transitions
if (SPOT_UNLIKELY(i->cond() == bddfalse))
continue;
const state* dest = filter(i->dst());
if (!dest)