[PPL-devel] [GIT] ppl/ppl(master): Avoid assertion crash on universe polyhedra.

Enea Zaffanella zaffanella at cs.unipr.it
Tue Apr 13 10:22:12 CEST 2010


Module: ppl/ppl
Branch: master
Commit: d4d1ad3031cd681d2ff48d1e9d6990b5dbe32089
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d4d1ad3031cd681d2ff48d1e9d6990b5dbe32089

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Tue Apr 13 10:21:28 2010 +0200

Avoid assertion crash on universe polyhedra.

---

 src/termination.cc |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/termination.cc b/src/termination.cc
index e2749ab..bd9bc7e 100644
--- a/src/termination.cc
+++ b/src/termination.cc
@@ -853,6 +853,13 @@ all_affine_ranking_functions_PR_original(const Constraint_System& cs,
   const dimension_type n = cs.space_dimension() / 2;
   const dimension_type m = distance(cs.begin(), cs.end());
 
+  if (m == 0) {
+    // If there are no constraints at all, we have non-termination,
+    // i.e., no affine ranking function at all.
+    mu_space = NNC_Polyhedron(n + 1, EMPTY);
+    return;
+  }
+
   Constraint_System cs_eqs;
   Linear_Expression le_ineq;
   fill_constraint_system_PR_original(cs, cs_eqs, le_ineq);




More information about the PPL-devel mailing list