Predator  [unstable] git snapshot
glconf.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Kamil Dudka <kdudka@redhat.com>
3  *
4  * This file is part of predator.
5  *
6  * predator is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * any later version.
10  *
11  * predator is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with predator. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef H_GUARD_GLCONF_H
21 #define H_GUARD_GLCONF_H
22 
23 #include "config.h"
24 
25 #include <string>
26 
27 namespace FixedPoint {
28  class StateByInsn;
29 }
30 
31 namespace GlConf {
32 
33 struct Options {
34  bool trackUninit; ///< enable/disable @b track_uninit @b mode
35  bool oomSimulation; ///< enable/disable @b oom @b simulation mode
36  bool memLeakIsError; ///< treat memory leak as an error
37  bool skipUserPlots; ///< ignore all ___sl_plot*() calls
38  int errorRecoveryMode; ///< @copydoc config.h::SE_ERROR_RECOVERY_MODE
39  std::string errLabel; ///< if not empty, treat reaching the label as error
40  bool allowCyclicTraceGraph; ///< create node with two parents on entailment
41  int allowThreeWayJoin; ///< @copydoc config.h::SE_ALLOW_THREE_WAY_JOIN
42  bool forbidHeapReplace; ///< @copydoc config.h::SE_FORBID_HEAP_REPLACE
43  int intArithmeticLimit; ///< @copydoc config.h::SE_INT_ARITHMETIC_LIMIT
44  int joinOnLoopEdgesOnly;///< @copydoc config.h::SE_JOIN_ON_LOOP_EDGES_ONLY
45  int stateLiveOrdering; ///< @copydoc config.h::SE_STATE_ON_THE_FLY_ORDERING
46  bool detectContainers; ///< detect containers and operations over them
47  FixedPoint::StateByInsn *fixedPoint; ///< fixed-point plotter (0 if unused)
48 
49  Options();
50 };
51 
52 extern Options data;
53 
54 void loadConfigString(const std::string &);
55 
56 } // namespace GlConf
57 
58 #endif /* H_GUARD_GLCONF_H */