svf-lib 1.0.1375 → 1.0.1376

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/SVF-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
  2. package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +79 -0
  3. package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +210 -0
  4. package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +223 -0
  5. package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +425 -0
  6. package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +868 -0
  7. package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +406 -0
  8. package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +225 -0
  9. package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +68 -0
  10. package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
  11. package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +845 -0
  12. package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +84 -0
  13. package/SVF-osx/svf/include/include/CFL/CFLAlias.h +176 -0
  14. package/SVF-osx/svf/include/include/CFL/CFLBase.h +115 -0
  15. package/SVF-osx/svf/include/include/CFL/CFLData.h +316 -0
  16. package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +91 -0
  17. package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +74 -0
  18. package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +468 -0
  19. package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +15 -0
  20. package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +193 -0
  21. package/SVF-osx/svf/include/include/CFL/CFLSolver.h +136 -0
  22. package/SVF-osx/svf/include/include/CFL/CFLStat.h +67 -0
  23. package/SVF-osx/svf/include/include/CFL/CFLVF.h +65 -0
  24. package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +100 -0
  25. package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +11 -0
  26. package/SVF-osx/svf/include/include/CFL/VFG.txt +7 -0
  27. package/SVF-osx/svf/include/include/DDA/ContextDDA.h +230 -0
  28. package/SVF-osx/svf/include/include/DDA/DDAClient.h +168 -0
  29. package/SVF-osx/svf/include/include/DDA/DDAPass.h +99 -0
  30. package/SVF-osx/svf/include/include/DDA/DDAStat.h +138 -0
  31. package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +789 -0
  32. package/SVF-osx/svf/include/include/DDA/FlowDDA.h +178 -0
  33. package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +13 -0
  34. package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +80 -0
  35. package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +215 -0
  36. package/SVF-osx/svf/include/include/Graphs/CHG.h +351 -0
  37. package/SVF-osx/svf/include/include/Graphs/ConsG.h +408 -0
  38. package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +353 -0
  39. package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +391 -0
  40. package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +188 -0
  41. package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +620 -0
  42. package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +111 -0
  43. package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +150 -0
  44. package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +380 -0
  45. package/SVF-osx/svf/include/include/Graphs/ICFG.h +331 -0
  46. package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +264 -0
  47. package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +523 -0
  48. package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +164 -0
  49. package/SVF-osx/svf/include/include/Graphs/IRGraph.h +243 -0
  50. package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +471 -0
  51. package/SVF-osx/svf/include/include/Graphs/SVFG.h +490 -0
  52. package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +237 -0
  53. package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +513 -0
  54. package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +362 -0
  55. package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +273 -0
  56. package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +422 -0
  57. package/SVF-osx/svf/include/include/Graphs/VFG.h +664 -0
  58. package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +295 -0
  59. package/SVF-osx/svf/include/include/Graphs/VFGNode.h +1197 -0
  60. package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +722 -0
  61. package/SVF-osx/svf/include/include/MSSA/MemPartition.h +169 -0
  62. package/SVF-osx/svf/include/include/MSSA/MemRegion.h +491 -0
  63. package/SVF-osx/svf/include/include/MSSA/MemSSA.h +452 -0
  64. package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +98 -0
  65. package/SVF-osx/svf/include/include/MTA/FSMPTA.h +270 -0
  66. package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +517 -0
  67. package/SVF-osx/svf/include/include/MTA/MHP.h +565 -0
  68. package/SVF-osx/svf/include/include/MTA/MTA.h +101 -0
  69. package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +448 -0
  70. package/SVF-osx/svf/include/include/MTA/MTAStat.h +74 -0
  71. package/SVF-osx/svf/include/include/MTA/PCG.h +229 -0
  72. package/SVF-osx/svf/include/include/MTA/TCT.h +599 -0
  73. package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +316 -0
  74. package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +878 -0
  75. package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +148 -0
  76. package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +1025 -0
  77. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +463 -0
  78. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +955 -0
  79. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +452 -0
  80. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +590 -0
  81. package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +255 -0
  82. package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +164 -0
  83. package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +76 -0
  84. package/SVF-osx/svf/include/include/SABER/FileChecker.h +82 -0
  85. package/SVF-osx/svf/include/include/SABER/LeakChecker.h +124 -0
  86. package/SVF-osx/svf/include/include/SABER/ProgSlice.h +313 -0
  87. package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +166 -0
  88. package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +310 -0
  89. package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +104 -0
  90. package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +321 -0
  91. package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +186 -0
  92. package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +80 -0
  93. package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +659 -0
  94. package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +233 -0
  95. package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +1136 -0
  96. package/SVF-osx/svf/include/include/SVFIR/SVFType.h +527 -0
  97. package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +1120 -0
  98. package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +721 -0
  99. package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +597 -0
  100. package/SVF-osx/svf/include/include/Util/Annotator.h +180 -0
  101. package/SVF-osx/svf/include/include/Util/BitVector.h +55 -0
  102. package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +74 -0
  103. package/SVF-osx/svf/include/include/Util/Casting.h +426 -0
  104. package/SVF-osx/svf/include/include/Util/CommandLine.h +530 -0
  105. package/SVF-osx/svf/include/include/Util/CoreBitVector.h +214 -0
  106. package/SVF-osx/svf/include/include/Util/CppUtil.h +81 -0
  107. package/SVF-osx/svf/include/include/Util/CxtStmt.h +501 -0
  108. package/SVF-osx/svf/include/include/Util/DPItem.h +618 -0
  109. package/SVF-osx/svf/include/include/Util/ExtAPI.h +339 -0
  110. package/SVF-osx/svf/include/include/Util/ExtAPI.json +5707 -0
  111. package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +186 -0
  112. package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +194 -0
  113. package/SVF-osx/svf/include/include/Util/Options.h +266 -0
  114. package/SVF-osx/svf/include/include/Util/PTAStat.h +65 -0
  115. package/SVF-osx/svf/include/include/Util/SCC.h +354 -0
  116. package/SVF-osx/svf/include/include/Util/SVFStat.h +100 -0
  117. package/SVF-osx/svf/include/include/Util/SVFUtil.h +660 -0
  118. package/SVF-osx/svf/include/include/Util/SparseBitVector.h +1202 -0
  119. package/SVF-osx/svf/include/include/Util/ThreadAPI.h +330 -0
  120. package/SVF-osx/svf/include/include/Util/WorkList.h +317 -0
  121. package/SVF-osx/svf/include/include/Util/Z3Expr.h +318 -0
  122. package/SVF-osx/svf/include/include/Util/cJSON.h +300 -0
  123. package/SVF-osx/svf/include/include/Util/iterator.h +407 -0
  124. package/SVF-osx/svf/include/include/Util/iterator_range.h +76 -0
  125. package/SVF-osx/svf/include/include/WPA/Andersen.h +416 -0
  126. package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +160 -0
  127. package/SVF-osx/svf/include/include/WPA/CSC.h +95 -0
  128. package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +317 -0
  129. package/SVF-osx/svf/include/include/WPA/Steensgaard.h +126 -0
  130. package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +83 -0
  131. package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +287 -0
  132. package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +254 -0
  133. package/SVF-osx/svf/include/include/WPA/WPAPass.h +119 -0
  134. package/SVF-osx/svf/include/include/WPA/WPASolver.h +205 -0
  135. package/SVF-osx/svf/include/include/WPA/WPAStat.h +222 -0
  136. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +250 -0
  137. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +94 -0
  138. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +73 -0
  139. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +484 -0
  140. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
  141. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +106 -0
  142. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
  143. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +360 -0
  144. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +466 -0
  145. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +417 -0
  146. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +110 -0
  147. package/package.json +1 -1
@@ -0,0 +1,233 @@
1
+ //===- SVFModule.h -- SVFModule* class-----------------------------------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-2017> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
23
+ /*
24
+ * SVFModule.h
25
+ *
26
+ * Created on: Aug 4, 2017
27
+ * Author: Xiaokang Fan
28
+ */
29
+
30
+ #ifndef INCLUDE_SVFMODULE_H_
31
+ #define INCLUDE_SVFMODULE_H_
32
+
33
+ #include "SVFIR/SVFValue.h"
34
+ #include "Util/ExtAPI.h"
35
+ #include "Util/NodeIDAllocator.h"
36
+ #include "Util/ThreadAPI.h"
37
+
38
+ namespace SVF
39
+ {
40
+
41
+ class SVFModule
42
+ {
43
+ public:
44
+ typedef std::vector<const SVFFunction*> FunctionSetType;
45
+ typedef std::vector<SVFGlobalValue*> GlobalSetType;
46
+ typedef std::vector<SVFGlobalValue*> AliasSetType;
47
+ typedef std::vector<SVFConstant*> ConstantType;
48
+ typedef std::vector<SVFOtherValue*> OtherValueType;
49
+
50
+ /// Iterators type def
51
+ typedef FunctionSetType::iterator iterator;
52
+ typedef FunctionSetType::const_iterator const_iterator;
53
+ typedef GlobalSetType::iterator global_iterator;
54
+ typedef GlobalSetType::const_iterator const_global_iterator;
55
+ typedef AliasSetType::iterator alias_iterator;
56
+ typedef AliasSetType::const_iterator const_alias_iterator;
57
+ typedef ConstantType::iterator cdata_iterator;
58
+ typedef ConstantType::const_iterator const_cdata_iterator;
59
+ typedef OtherValueType::iterator ovalue_iterator;
60
+ typedef OtherValueType::const_iterator const_ovalue_iterator;
61
+
62
+ private:
63
+ static std::string pagReadFromTxt;
64
+ std::string moduleIdentifier;
65
+ FunctionSetType FunctionSet; ///< The Functions in the module
66
+ GlobalSetType GlobalSet; ///< The Global Variables in the module
67
+ AliasSetType AliasSet; ///< The Aliases in the module
68
+ ConstantType ConstantSet; ///< The ConstantData in the module
69
+ OtherValueType OtherValueSet; ///< All other values in the module
70
+
71
+ public:
72
+ /// Constructors
73
+ SVFModule(std::string moduleName = "") : moduleIdentifier(moduleName)
74
+ {
75
+ }
76
+
77
+ ~SVFModule();
78
+
79
+ static inline void setPagFromTXT(std::string txt)
80
+ {
81
+ pagReadFromTxt = txt;
82
+ }
83
+
84
+ static inline std::string pagFileName()
85
+ {
86
+ return pagReadFromTxt;
87
+ }
88
+
89
+ static inline bool pagReadFromTXT()
90
+ {
91
+ if(pagReadFromTxt.empty())
92
+ return false;
93
+ else
94
+ return true;
95
+ }
96
+
97
+ const SVFFunction* getSVFFunction(const std::string name);
98
+
99
+ ///@{
100
+ inline void addFunctionSet(SVFFunction* svfFunc)
101
+ {
102
+ FunctionSet.push_back(svfFunc);
103
+ }
104
+ inline void addGlobalSet(SVFGlobalValue* glob)
105
+ {
106
+ GlobalSet.push_back(glob);
107
+ addConstant(glob);
108
+ }
109
+ inline void addAliasSet(SVFGlobalValue* alias)
110
+ {
111
+ AliasSet.push_back(alias);
112
+ addConstant(alias);
113
+ }
114
+ inline void addConstant(SVFConstant* cd)
115
+ {
116
+ ConstantSet.push_back(cd);
117
+ }
118
+ inline void addOtherValue(SVFOtherValue* ov)
119
+ {
120
+ OtherValueSet.push_back(ov);
121
+ }
122
+
123
+ ///@}
124
+
125
+ /// Iterators
126
+ ///@{
127
+ iterator begin()
128
+ {
129
+ return FunctionSet.begin();
130
+ }
131
+ const_iterator begin() const
132
+ {
133
+ return FunctionSet.begin();
134
+ }
135
+ iterator end()
136
+ {
137
+ return FunctionSet.end();
138
+ }
139
+ const_iterator end() const
140
+ {
141
+ return FunctionSet.end();
142
+ }
143
+
144
+ global_iterator global_begin()
145
+ {
146
+ return GlobalSet.begin();
147
+ }
148
+ const_global_iterator global_begin() const
149
+ {
150
+ return GlobalSet.begin();
151
+ }
152
+ global_iterator global_end()
153
+ {
154
+ return GlobalSet.end();
155
+ }
156
+ const_global_iterator global_end() const
157
+ {
158
+ return GlobalSet.end();
159
+ }
160
+
161
+ alias_iterator alias_begin()
162
+ {
163
+ return AliasSet.begin();
164
+ }
165
+ const_alias_iterator alias_begin() const
166
+ {
167
+ return AliasSet.begin();
168
+ }
169
+ alias_iterator alias_end()
170
+ {
171
+ return AliasSet.end();
172
+ }
173
+ const_alias_iterator alias_end() const
174
+ {
175
+ return AliasSet.end();
176
+ }
177
+
178
+ cdata_iterator constant_begin()
179
+ {
180
+ return ConstantSet.begin();
181
+ }
182
+ const_cdata_iterator constant_begin() const
183
+ {
184
+ return ConstantSet.begin();
185
+ }
186
+ cdata_iterator constant_end()
187
+ {
188
+ return ConstantSet.end();
189
+ }
190
+ const_cdata_iterator constant_end() const
191
+ {
192
+ return ConstantSet.end();
193
+ }
194
+ ///@}
195
+
196
+ const std::string& getModuleIdentifier() const
197
+ {
198
+ if (pagReadFromTxt.empty())
199
+ {
200
+ assert(moduleIdentifier.empty()==false && "No module found! Are you reading from a file other than LLVM-IR?");
201
+ return moduleIdentifier;
202
+ }
203
+ else
204
+ {
205
+ return pagReadFromTxt;
206
+ }
207
+ }
208
+
209
+ inline const FunctionSetType& getFunctionSet() const
210
+ {
211
+ return FunctionSet;
212
+ }
213
+ inline const ConstantType& getConstantSet() const
214
+ {
215
+ return ConstantSet;
216
+ }
217
+ inline const GlobalSetType& getGlobalSet() const
218
+ {
219
+ return GlobalSet;
220
+ }
221
+ inline const AliasSetType& getAliasSet() const
222
+ {
223
+ return AliasSet;
224
+ }
225
+ inline const OtherValueType& getOtherValueSet() const
226
+ {
227
+ return OtherValueSet;
228
+ }
229
+ };
230
+
231
+ } // End namespace SVF
232
+
233
+ #endif /* INCLUDE_SVFMODULE_H_ */