[GIT] ppl/ppl(devel): Fixed several catch declarations. Added constructors and assignment operators.

Module: ppl/ppl Branch: devel Commit: eb747ec58bfb48d60aef9e1ed8dea8e9ec19f2a3 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=eb747ec58bfb4...
Author: Roberto Bagnara roberto.bagnara@bugseng.com Date: Tue Aug 11 15:08:59 2020 +0200
Fixed several catch declarations. Added constructors and assignment operators.
---
src/Box_Status_idefs.hh | 3 +++ src/Linear_Form_defs.hh | 3 +++ src/Linear_Form_inlines.hh | 7 +++++++ src/OR_Matrix_defs.hh | 3 +++ src/iterator_to_const_defs.hh | 7 +++++++ src/iterator_to_const_inlines.hh | 7 +++++++ tests/Concrete_Expression/bdshape1.cc | 4 ++-- tests/Concrete_Expression/bdshape2.cc | 4 ++-- tests/Concrete_Expression/linearform1.cc | 12 ++++++------ tests/Concrete_Expression/octagonalshape1.cc | 4 ++-- tests/Concrete_Expression/octagonalshape2.cc | 4 ++-- tests/Concrete_Expression/polyhedron2.cc | 4 ++-- 12 files changed, 46 insertions(+), 16 deletions(-)
diff --git a/src/Box_Status_idefs.hh b/src/Box_Status_idefs.hh index ac4b0988b..3a70108f5 100644 --- a/src/Box_Status_idefs.hh +++ b/src/Box_Status_idefs.hh @@ -50,6 +50,9 @@ public: //! Ordinary copy constructor. Status(const Status& y);
+ //! Assignment operator. + constexpr Status& operator=(const Status& y) = default; + //! Copy constructor from a box of different type. template <typename Other_ITV> Status(const typename Box<Other_ITV>::Status& y); diff --git a/src/Linear_Form_defs.hh b/src/Linear_Form_defs.hh index df4592fdd..f3b94459d 100644 --- a/src/Linear_Form_defs.hh +++ b/src/Linear_Form_defs.hh @@ -266,6 +266,9 @@ public: //! Ordinary copy constructor. Linear_Form(const Linear_Form& f);
+ //! Assignment operator. + Linear_Form& operator=(const Linear_Form& f); + //! Destructor. ~Linear_Form();
diff --git a/src/Linear_Form_inlines.hh b/src/Linear_Form_inlines.hh index 8f8ee0640..ed775ef12 100644 --- a/src/Linear_Form_inlines.hh +++ b/src/Linear_Form_inlines.hh @@ -56,6 +56,13 @@ Linear_Form<C>::Linear_Form(const Linear_Form& f) : vec(f.vec) { }
+template <typename C> +inline Linear_Form<C>& +Linear_Form<C>::operator=(const Linear_Form& f) { + vec = f.vec; + return *this; +} + template <typename C> inline Linear_Form<C>::~Linear_Form() { diff --git a/src/OR_Matrix_defs.hh b/src/OR_Matrix_defs.hh index 2902e2268..0b036c613 100644 --- a/src/OR_Matrix_defs.hh +++ b/src/OR_Matrix_defs.hh @@ -128,6 +128,9 @@ private: //! Default constructor: creates an invalid object that has to be assigned. Pseudo_Row();
+ //! Copy constructor. + constexpr Pseudo_Row(const Pseudo_Row& y) = default; + //! Assignment operator. Pseudo_Row& operator=(const Pseudo_Row& y);
diff --git a/src/iterator_to_const_defs.hh b/src/iterator_to_const_defs.hh index 5a0c7d9c1..d7272c521 100644 --- a/src/iterator_to_const_defs.hh +++ b/src/iterator_to_const_defs.hh @@ -80,6 +80,9 @@ public: //! Copy constructor. iterator_to_const(const iterator_to_const& y);
+ //! Assignment operator. + iterator_to_const& operator=(const iterator_to_const& y); + //! Dereference operator. reference operator*() const;
@@ -151,6 +154,10 @@ public: //! Copy constructor. const_iterator_to_const(const const_iterator_to_const& y);
+ //! Assignment operator. + constexpr const_iterator_to_const& + operator=(const const_iterator_to_const& y) = default; + //! Constructs from the corresponding non-const iterator. const_iterator_to_const(const iterator_to_const<Container>& y);
diff --git a/src/iterator_to_const_inlines.hh b/src/iterator_to_const_inlines.hh index 16bcd7ee2..8ea9d25c7 100644 --- a/src/iterator_to_const_inlines.hh +++ b/src/iterator_to_const_inlines.hh @@ -39,6 +39,13 @@ iterator_to_const<Container>::iterator_to_const(const iterator_to_const& y) : base(y.base) { }
+template <typename Container> +inline iterator_to_const<Container>& +iterator_to_const<Container>::operator=(const iterator_to_const& y) { + base = y.base; + return *this; +} + template <typename Container> inline iterator_to_const<Container>::iterator_to_const(const Base& b) diff --git a/tests/Concrete_Expression/bdshape1.cc b/tests/Concrete_Expression/bdshape1.cc index 810a4a337..59afa3a03 100644 --- a/tests/Concrete_Expression/bdshape1.cc +++ b/tests/Concrete_Expression/bdshape1.cc @@ -37,7 +37,7 @@ test01() { try { bd1.affine_form_image(A, l); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "bd1_space_dim < lf_space_dim" << endl; ok1 = true; } @@ -48,7 +48,7 @@ test01() { try { bd2.affine_form_image(B, l); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "space_dim < var_id + 1" << endl; bd2.affine_form_image(A, l); Constraint_System cs(A < A); diff --git a/tests/Concrete_Expression/bdshape2.cc b/tests/Concrete_Expression/bdshape2.cc index ac231dba1..155706ad8 100644 --- a/tests/Concrete_Expression/bdshape2.cc +++ b/tests/Concrete_Expression/bdshape2.cc @@ -38,7 +38,7 @@ test01() { bd1.refine_with_linear_form_inequality(l1,l2); std::cout <<"no eccezione" <<std::endl; } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { ok1 = true; }
@@ -48,7 +48,7 @@ test01() { bd1.refine_with_linear_form_inequality(l2,l1); std::cout <<"no eccezione" <<std::endl; } - catch(std::invalid_argument e){ + catch(std::invalid_argument& e){ FP_BD_Shape bd2(1); bd2.refine_with_linear_form_inequality(l1, l1); bd2.refine_with_linear_form_inequality(-l1, l1); diff --git a/tests/Concrete_Expression/linearform1.cc b/tests/Concrete_Expression/linearform1.cc index 7ccb1fb90..baa73276e 100644 --- a/tests/Concrete_Expression/linearform1.cc +++ b/tests/Concrete_Expression/linearform1.cc @@ -230,7 +230,7 @@ test08() { try { f = FP_Linear_Form(A); } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in Linear_Form(const Variable v)." << endl; ok1 = true; } @@ -239,7 +239,7 @@ test08() { try { f += A; } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in operator+=(Linear_Form<C>& f, const Variable v)." << endl; ok2 = true; @@ -249,7 +249,7 @@ test08() { try { f -= A; } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in operator-=(Linear_Form<C>& f, const Variable v)." << endl; Variable B(1); @@ -264,7 +264,7 @@ test08() { try { g = f - A; } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in operator-(Linear_Form<C>& f, const Variable v)." << endl; ok4 = true; @@ -274,7 +274,7 @@ test08() { try { g = A - f; } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in operator-(const Variable v, Linear_Form<C>& f)." << endl; ok5 = true; @@ -284,7 +284,7 @@ test08() { try { g = A + f; } - catch(std::length_error e) { + catch(std::length_error& e) { nout << "Overflow in operator+(const Variable v, Linear_Form<C>& f)." << endl; ok6 = true; diff --git a/tests/Concrete_Expression/octagonalshape1.cc b/tests/Concrete_Expression/octagonalshape1.cc index 0c0c68845..9b9b66756 100644 --- a/tests/Concrete_Expression/octagonalshape1.cc +++ b/tests/Concrete_Expression/octagonalshape1.cc @@ -37,7 +37,7 @@ test01() { try { oc1.affine_form_image(A, l); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "oc1_space_dim < lf_space_dim" << endl; ok1 = true; } @@ -48,7 +48,7 @@ test01() { try { oc2.affine_form_image(B, l); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "space_dim < var_id + 1" << endl; oc2.affine_form_image(A, l); Constraint_System cs(A < A); diff --git a/tests/Concrete_Expression/octagonalshape2.cc b/tests/Concrete_Expression/octagonalshape2.cc index 1f83ac3de..a3b10fd94 100644 --- a/tests/Concrete_Expression/octagonalshape2.cc +++ b/tests/Concrete_Expression/octagonalshape2.cc @@ -37,7 +37,7 @@ test01() { try { oc1.refine_with_linear_form_inequality(l1, l2); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "space_dim < left_space_dim" << endl; ok1 = true; } @@ -46,7 +46,7 @@ test01() { try { oc1.refine_with_linear_form_inequality(l2, l1); } - catch(std::invalid_argument e) { + catch(std::invalid_argument& e) { nout << "space_dim < right_space_dim" << endl; FP_Octagonal_Shape oc2(1); oc2.refine_with_linear_form_inequality(l1, l1); diff --git a/tests/Concrete_Expression/polyhedron2.cc b/tests/Concrete_Expression/polyhedron2.cc index 4b80c565e..a3a760807 100644 --- a/tests/Concrete_Expression/polyhedron2.cc +++ b/tests/Concrete_Expression/polyhedron2.cc @@ -38,13 +38,13 @@ test01() { FP_Linear_Form l2; pol.refine_with_linear_form_inequality(l1, l2); } - catch (std::invalid_argument) { + catch (std::invalid_argument&) { try { FP_Linear_Form l1; FP_Linear_Form l2(Variable(3)); pol.refine_with_linear_form_inequality(l1, l2); } - catch (std::invalid_argument) { + catch (std::invalid_argument&) { nout << "incompatible dimensions." << endl; return true; }
participants (1)
-
Roberto Bagnara