1 /* Definitions of global objects.
2    Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
3    Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
4 
5 This file is part of the Parma Polyhedra Library (PPL).
6 
7 The PPL is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11 
12 The PPL is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
20 
21 For the most up-to-date information see the Parma Polyhedra Library
22 site: http://bugseng.com/products/ppl/ . */
23 
24 #include "ppl-config.h"
25 #include "globals_defs.hh"
26 #include "Constraint_defs.hh"
27 #include "Generator_defs.hh"
28 
29 namespace Parma_Polyhedra_Library {
30 
~Throwable()31 Throwable::~Throwable() {
32 }
33 
34 const Throwable* volatile abandon_expensive_computations = 0;
35 
36 // Initialize Weightwatch_Traits static data members.
37 Weightwatch_Traits::Threshold Weightwatch_Traits::weight = 0;
38 void (*Weightwatch_Traits::check_function)(void) = 0;
39 
40 #ifndef NDEBUG
41 
42 unsigned int In_Assert::count = 0;
43 
44 #endif
45 
46 
47 dimension_type
check_space_dimension_overflow(const dimension_type dim,const dimension_type max,const char * domain,const char * method,const char * reason)48 check_space_dimension_overflow(const dimension_type dim,
49                                const dimension_type max,
50                                const char* domain,
51                                const char* method,
52                                const char* reason) {
53   if (dim > max) {
54     std::ostringstream s;
55     s << domain << method << ":" << std::endl
56       << reason << ".";
57     throw std::length_error(s.str());
58   }
59   return dim;
60 }
61 
62 } // namespace Parma_Polyhedra_Library
63