svf-tools 1.0.613 → 1.0.614

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 (538) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +23 -28
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +4 -4
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  180. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  182. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  183. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  186. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  190. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  191. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  192. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  194. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  195. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  198. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  199. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  200. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  201. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  202. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  206. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  207. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  210. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  216. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  217. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  219. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +106 -92
  223. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  224. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  225. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  227. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  228. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  230. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  231. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  232. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  233. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  234. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  235. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  236. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  237. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  239. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  241. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  243. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  246. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  247. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  249. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  251. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  252. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  259. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  260. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  271. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  272. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  273. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  276. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  332. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  333. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  334. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  335. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  336. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  337. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  339. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  341. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  342. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  343. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  344. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  345. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  347. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  348. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  349. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  350. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  351. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +29 -32
  352. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  354. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  355. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  356. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  357. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  359. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  361. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  362. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  364. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  366. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  367. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  368. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  369. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  370. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  371. package/SVF-doxygen/html/html/functions.html +1 -1
  372. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  373. package/SVF-doxygen/html/html/functions_a.html +7 -7
  374. package/SVF-doxygen/html/html/functions_b.html +6 -6
  375. package/SVF-doxygen/html/html/functions_c.html +27 -27
  376. package/SVF-doxygen/html/html/functions_d.html +10 -11
  377. package/SVF-doxygen/html/html/functions_e.html +2 -2
  378. package/SVF-doxygen/html/html/functions_f.html +6 -6
  379. package/SVF-doxygen/html/html/functions_func.html +6 -6
  380. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  381. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  382. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  383. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  384. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  385. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  386. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  387. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  388. package/SVF-doxygen/html/html/functions_func_i.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  390. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  391. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  392. package/SVF-doxygen/html/html/functions_func_s.html +5 -5
  393. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  394. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  395. package/SVF-doxygen/html/html/functions_g.html +25 -28
  396. package/SVF-doxygen/html/html/functions_h.html +3 -3
  397. package/SVF-doxygen/html/html/functions_i.html +5 -5
  398. package/SVF-doxygen/html/html/functions_m.html +1 -1
  399. package/SVF-doxygen/html/html/functions_o.html +13 -13
  400. package/SVF-doxygen/html/html/functions_p.html +19 -19
  401. package/SVF-doxygen/html/html/functions_r.html +11 -12
  402. package/SVF-doxygen/html/html/functions_s.html +32 -35
  403. package/SVF-doxygen/html/html/functions_t.html +12 -12
  404. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  405. package/SVF-doxygen/html/html/functions_u.html +26 -23
  406. package/SVF-doxygen/html/html/functions_v.html +6 -6
  407. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  408. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  409. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  410. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  411. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  413. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  414. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  416. package/SVF-doxygen/html/html/functions_w.html +3 -7
  417. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  418. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  419. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  420. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  421. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  422. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  423. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  424. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  425. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  426. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  427. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  428. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  429. package/SVF-doxygen/html/html/search/all_12.js +19 -20
  430. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  431. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  432. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  433. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  434. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  435. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  436. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  437. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  438. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  439. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  440. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  441. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  442. package/SVF-doxygen/html/html/search/all_9.js +3 -3
  443. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  444. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  445. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  447. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  448. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  449. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  450. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  451. package/SVF-doxygen/html/html/search/functions_11.js +10 -10
  452. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  453. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  454. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  455. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  456. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  457. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  458. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  459. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  460. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  461. package/SVF-doxygen/html/html/search/functions_8.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  463. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  464. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  465. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  466. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  467. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  468. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  469. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  470. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  471. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  472. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  473. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  474. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  475. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  476. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  477. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  478. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  479. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  481. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  482. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  484. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  485. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  486. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  487. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  488. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  489. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  490. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  491. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  492. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  493. package/build.sh +2 -2
  494. package/include/DDA/DDAPass.h +1 -1
  495. package/include/DDA/FlowDDA.h +1 -1
  496. package/include/Graphs/ICFG.h +1 -1
  497. package/include/Graphs/SVFG.h +3 -4
  498. package/include/Graphs/SVFGOPT.h +7 -7
  499. package/include/MSSA/MemSSA.h +2 -0
  500. package/include/MSSA/SVFGBuilder.h +5 -14
  501. package/include/MTA/MTA.h +2 -2
  502. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  503. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  504. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  505. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  506. package/include/MemoryModel/PointsTo.h +24 -24
  507. package/include/SABER/SrcSnkDDA.h +10 -13
  508. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  509. package/include/SVF-LLVM/LLVMModule.h +6 -6
  510. package/include/SVFIR/SVFIR.h +3 -5
  511. package/include/SVFIR/SVFType.h +6 -8
  512. package/include/SVFIR/SVFValue.h +3 -3
  513. package/include/Util/Options.h +0 -1
  514. package/include/Util/SparseBitVector.h +6 -14
  515. package/include/WPA/FlowSensitive.h +13 -20
  516. package/include/WPA/WPASolver.h +5 -9
  517. package/lib/DDA/DDAPass.cpp +4 -4
  518. package/lib/Graphs/CFLGraph.cpp +3 -0
  519. package/lib/Graphs/SVFG.cpp +1 -1
  520. package/lib/MSSA/MemSSA.cpp +5 -3
  521. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  522. package/lib/MTA/MTA.cpp +4 -4
  523. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  524. package/lib/MemoryModel/PointsTo.cpp +23 -19
  525. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  526. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  527. package/lib/SVFIR/SVFIR.cpp +1 -1
  528. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  529. package/lib/Util/Options.cpp +0 -6
  530. package/lib/WPA/AndersenSFR.cpp +1 -1
  531. package/lib/WPA/FlowSensitive.cpp +1 -1
  532. package/package.json +1 -1
  533. package/tools/CFL/cfl.cpp +5 -4
  534. package/tools/DDA/dda.cpp +3 -2
  535. package/tools/Example/svf-ex.cpp +3 -2
  536. package/tools/MTA/mta.cpp +6 -4
  537. package/tools/SABER/saber.cpp +7 -5
  538. package/tools/WPA/wpa.cpp +3 -2
@@ -3744,7 +3744,7 @@ template<typename Key , typename Compare = std::less<Key>, typename Al
3744
3744
  </table>
3745
3745
  </div><div class="memdoc">
3746
3746
 
3747
- <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00655">655</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
3747
+ <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00653">653</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
3748
3748
 
3749
3749
  </div>
3750
3750
  </div>
@@ -4678,11 +4678,11 @@ template&lt;typename Key , typename Hash = Hash&lt;Key&gt;, typename KeyEqual
4678
4678
  <tr><td class="fieldname"><a id="a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6"></a>PartialAlias&#160;</td><td class="fielddoc"></td></tr>
4679
4679
  </table>
4680
4680
 
4681
- <p class="definition">Definition at line <a class="el" href="SVFType_8h_source.html#l00460">460</a> of file <a class="el" href="SVFType_8h_source.html">SVFType.h</a>.</p>
4682
- <div class="fragment"><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;{</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">NoAlias</a>,</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">MayAlias</a>,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">MustAlias</a>,</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">PartialAlias</a>,</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;};</div><div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00463">SVFType.h:463</a></div></div>
4683
- <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">SVF::PartialAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00465">SVFType.h:465</a></div></div>
4684
- <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00462">SVFType.h:462</a></div></div>
4685
- <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">SVF::MustAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00464">SVFType.h:464</a></div></div>
4681
+ <p class="definition">Definition at line <a class="el" href="SVFType_8h_source.html#l00458">458</a> of file <a class="el" href="SVFType_8h_source.html">SVFType.h</a>.</p>
4682
+ <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">NoAlias</a>,</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">MayAlias</a>,</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">MustAlias</a>,</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">PartialAlias</a>,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;};</div><div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00461">SVFType.h:461</a></div></div>
4683
+ <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">SVF::PartialAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00463">SVFType.h:463</a></div></div>
4684
+ <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00460">SVFType.h:460</a></div></div>
4685
+ <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">SVF::MustAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00462">SVFType.h:462</a></div></div>
4686
4686
  </div><!-- fragment -->
4687
4687
  </div>
4688
4688
  </div>
@@ -4704,11 +4704,11 @@ template&lt;typename Key , typename Hash = Hash&lt;Key&gt;, typename KeyEqual
4704
4704
  <tr><td class="fieldname"><a id="a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"></a>NoModRef&#160;</td><td class="fielddoc"></td></tr>
4705
4705
  </table>
4706
4706
 
4707
- <p class="definition">Definition at line <a class="el" href="SVFType_8h_source.html#l00452">452</a> of file <a class="el" href="SVFType_8h_source.html">SVFType.h</a>.</p>
4708
- <div class="fragment"><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;{</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRef</a>,</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">Ref</a>,</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">Mod</a>,</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">NoModRef</a>,</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;};</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
4709
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00457">SVFType.h:457</a></div></div>
4710
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
4711
- <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00456">SVFType.h:456</a></div></div>
4707
+ <p class="definition">Definition at line <a class="el" href="SVFType_8h_source.html#l00450">450</a> of file <a class="el" href="SVFType_8h_source.html">SVFType.h</a>.</p>
4708
+ <div class="fragment"><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;{</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">ModRef</a>,</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">Ref</a>,</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">Mod</a>,</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">NoModRef</a>,</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;};</div><div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a068332f7018e0e4ff96fd22e7db1ca76">SVF::Ref</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00453">SVFType.h:453</a></div></div>
4709
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a4756baeb9dbb8b8c737941d67ca99d4f">SVF::NoModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00455">SVFType.h:455</a></div></div>
4710
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00452">SVFType.h:452</a></div></div>
4711
+ <div class="ttc" id="namespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844aea8604a04fd5c658e0ca8b9177316ba0">SVF::Mod</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00454">SVFType.h:454</a></div></div>
4712
4712
  </div><!-- fragment -->
4713
4713
  </div>
4714
4714
  </div>
@@ -4931,8 +4931,8 @@ template&lt;unsigned ElementSize&gt; </div>
4931
4931
  </table>
4932
4932
  </div><div class="memdoc">
4933
4933
 
4934
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01191">1191</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
4935
- <div class="fragment"><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;{</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; out &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keyword">typename</span> SparseBitVector&lt;ElementSize&gt;::iterator bi = LHS.begin(),</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; be = LHS.end();</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">if</span> (bi != be)</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; out &lt;&lt; *bi;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">for</span> (++bi; bi != be; ++bi)</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; {</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; out &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *bi;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; }</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; out &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;}</div></div><!-- fragment -->
4934
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01183">1183</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
4935
+ <div class="fragment"><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;{</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; out &lt;&lt; <span class="stringliteral">&quot;[&quot;</span>;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keyword">typename</span> SparseBitVector&lt;ElementSize&gt;::iterator bi = LHS.begin(),</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; be = LHS.end();</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">if</span> (bi != be)</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; {</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; out &lt;&lt; *bi;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">for</span> (++bi; bi != be; ++bi)</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; {</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; out &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *bi;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; }</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; }</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; out &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;}</div></div><!-- fragment -->
4936
4936
  </div>
4937
4937
  </div>
4938
4938
  <a id="a155eb379cf271ac550333afb13cb36fa"></a>
@@ -5178,8 +5178,8 @@ template&lt;class GraphType &gt; </div>
5178
5178
 
5179
5179
  <p>Returns a new lhs &amp; rhs. </p>
5180
5180
 
5181
- <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00569">569</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5182
- <div class="fragment"><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; result &amp;= rhs;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;}</div></div><!-- fragment -->
5181
+ <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00573">573</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5182
+ <div class="fragment"><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; result &amp;= rhs;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;}</div></div><!-- fragment -->
5183
5183
  </div>
5184
5184
  </div>
5185
5185
  <a id="aaa21ff095e66a18937f29246e213f69d"></a>
@@ -5210,8 +5210,8 @@ template&lt;class GraphType &gt; </div>
5210
5210
 
5211
5211
  <p>Returns a new lhs &amp; rhs. </p>
5212
5212
 
5213
- <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00569">569</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5214
- <div class="fragment"><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;{</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; result &amp;= rhs;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;}</div></div><!-- fragment -->
5213
+ <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00573">573</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5214
+ <div class="fragment"><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; result &amp;= rhs;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;}</div></div><!-- fragment -->
5215
5215
  </div>
5216
5216
  </div>
5217
5217
  <a id="aeb5348e052254496cad4e036073c3941"></a>
@@ -5291,8 +5291,8 @@ template&lt;unsigned ElementSize&gt; </div>
5291
5291
  </table>
5292
5292
  </div><div class="memdoc">
5293
5293
 
5294
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01171">1171</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5295
- <div class="fragment"><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;{</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(LHS);</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; Result &amp;= RHS;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;}</div></div><!-- fragment -->
5294
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01163">1163</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5295
+ <div class="fragment"><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;{</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(LHS);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; Result &amp;= RHS;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;}</div></div><!-- fragment -->
5296
5296
  </div>
5297
5297
  </div>
5298
5298
  <a id="a2f3ddba25bc972f70300128369e4cd1d"></a>
@@ -5371,8 +5371,8 @@ template&lt;unsigned ElementSize&gt; </div>
5371
5371
  </table>
5372
5372
  </div><div class="memdoc">
5373
5373
 
5374
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01144">1144</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5375
- <div class="fragment"><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;{</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">return</span> LHS-&gt;operator&amp;=(RHS);</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;}</div></div><!-- fragment -->
5374
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01136">1136</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5375
+ <div class="fragment"><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;{</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">return</span> LHS-&gt;operator&amp;=(RHS);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;}</div></div><!-- fragment -->
5376
5376
  </div>
5377
5377
  </div>
5378
5378
  <a id="a5df68020aca621b053acbe3f917f0809"></a>
@@ -5411,8 +5411,8 @@ template&lt;unsigned ElementSize&gt; </div>
5411
5411
  </table>
5412
5412
  </div><div class="memdoc">
5413
5413
 
5414
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01151">1151</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5415
- <div class="fragment"><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;{</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">return</span> LHS &amp;= *RHS;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;}</div></div><!-- fragment -->
5414
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01143">1143</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5415
+ <div class="fragment"><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;{</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keywordflow">return</span> LHS &amp;= *RHS;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;}</div></div><!-- fragment -->
5416
5416
  </div>
5417
5417
  </div>
5418
5418
  <a id="abf0dfb872989751b13069f859ef408e1"></a>
@@ -5523,8 +5523,8 @@ template&lt;unsigned ElementSize&gt; </div>
5523
5523
 
5524
5524
  <p>Returns a new lhs - rhs. </p>
5525
5525
 
5526
- <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00577">577</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5527
- <div class="fragment"><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;{</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; result -= rhs;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div></div><!-- fragment -->
5526
+ <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00581">581</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
5527
+ <div class="fragment"><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; result -= rhs;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;}</div></div><!-- fragment -->
5528
5528
  </div>
5529
5529
  </div>
5530
5530
  <a id="a4bddb7dbd28d3c0deb3cd35e48179a36"></a>
@@ -5603,8 +5603,8 @@ template&lt;unsigned ElementSize&gt; </div>
5603
5603
  </table>
5604
5604
  </div><div class="memdoc">
5605
5605
 
5606
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01181">1181</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5607
- <div class="fragment"><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;{</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; SparseBitVector&lt;ElementSize&gt; Result;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; Result.intersectWithComplement(LHS, RHS);</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;}</div></div><!-- fragment -->
5606
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01173">1173</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
5607
+ <div class="fragment"><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;{</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; SparseBitVector&lt;ElementSize&gt; Result;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; Result.intersectWithComplement(LHS, RHS);</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;}</div></div><!-- fragment -->
5608
5608
  </div>
5609
5609
  </div>
5610
5610
  <a id="a23c136994bc83222e1913d43ec3e7468"></a>
@@ -6067,8 +6067,8 @@ template&lt;typename F , typename S &gt; </div>
6067
6067
 
6068
6068
  <p>Returns a new lhs | rhs. </p>
6069
6069
 
6070
- <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00561">561</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
6071
- <div class="fragment"><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; result |= rhs;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;}</div></div><!-- fragment -->
6070
+ <p class="definition">Definition at line <a class="el" href="PointsTo_8cpp_source.html#l00565">565</a> of file <a class="el" href="PointsTo_8cpp_source.html">PointsTo.cpp</a>.</p>
6071
+ <div class="fragment"><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;{</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; PointsTo result = lhs;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; result |= rhs;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}</div></div><!-- fragment -->
6072
6072
  </div>
6073
6073
  </div>
6074
6074
  <a id="abed4354cf0282ae30b8330c0e91008d8"></a>
@@ -6149,8 +6149,8 @@ template&lt;unsigned ElementSize&gt; </div>
6149
6149
  </table>
6150
6150
  </div><div class="memdoc">
6151
6151
 
6152
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01161">1161</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6153
- <div class="fragment"><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(LHS);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; Result |= RHS;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;}</div></div><!-- fragment -->
6152
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01153">1153</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6153
+ <div class="fragment"><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;{</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; SparseBitVector&lt;ElementSize&gt; Result(LHS);</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; Result |= RHS;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;}</div></div><!-- fragment -->
6154
6154
  </div>
6155
6155
  </div>
6156
6156
  <a id="a97ff28f5dfd5c31e6ef351de3cdad85d"></a>
@@ -6189,8 +6189,8 @@ template&lt;unsigned ElementSize&gt; </div>
6189
6189
  </table>
6190
6190
  </div><div class="memdoc">
6191
6191
 
6192
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01130">1130</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6193
- <div class="fragment"><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;{</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">return</span> LHS |= *RHS;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;}</div></div><!-- fragment -->
6192
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01122">1122</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6193
+ <div class="fragment"><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;{</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">return</span> LHS |= *RHS;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;}</div></div><!-- fragment -->
6194
6194
  </div>
6195
6195
  </div>
6196
6196
  <a id="a7554dead3b2d1bcdfcb36c213e6735b6"></a>
@@ -6229,8 +6229,8 @@ template&lt;unsigned ElementSize&gt; </div>
6229
6229
  </table>
6230
6230
  </div><div class="memdoc">
6231
6231
 
6232
- <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01137">1137</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6233
- <div class="fragment"><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;{</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">return</span> LHS-&gt;operator|=(RHS);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;}</div></div><!-- fragment -->
6232
+ <p class="definition">Definition at line <a class="el" href="SparseBitVector_8h_source.html#l01129">1129</a> of file <a class="el" href="SparseBitVector_8h_source.html">SparseBitVector.h</a>.</p>
6233
+ <div class="fragment"><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;{</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">return</span> LHS-&gt;operator|=(RHS);</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;}</div></div><!-- fragment -->
6234
6234
  </div>
6235
6235
  </div>
6236
6236
  <a id="a4582a7d33a5631a5a38973f50035327e"></a>
@@ -1306,9 +1306,9 @@ Functions</h2></td></tr>
1306
1306
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00647">647</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1307
1307
  <div class="fragment"><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;{</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* v = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">cppUtil::isValVtbl</a>(v))</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!v-&gt;hasInitializer())</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">if</span>(v-&gt;isExternalLinkage(v-&gt;getLinkage()))</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; }</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a> *stInfo = LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFType(v-&gt;getInitializer()-&gt;getType())-&gt;getTypeInfo();</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">const</span> std::vector&lt;const SVFType*&gt; &amp;fields = stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>();</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">for</span> (std::vector&lt;const SVFType*&gt;::const_iterator it = fields.begin(), eit = fields.end(); it != eit; ++it)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = *it;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; assert(!SVFUtil::isa&lt;SVFFunctionType&gt;(elemTy) &amp;&amp; <span class="stringliteral">&quot;Initializer of a global is a function?&quot;</span>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFPointerType&gt;(elemTy))</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> v-&gt;isConstant();</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; }</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00103">BasicTypes.h:103</a></div></div>
1308
1308
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00374">LLVMUtil.h:374</a></div></div>
1309
- <div class="ttc" id="classSVF_1_1StInfo_html_ac0a9f85f90524abfd519d3cd2ac95a56"><div class="ttname"><a href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">SVF::StInfo::getFlattenFieldTypes</a></div><div class="ttdeci">std::vector&lt; const SVFType * &gt; &amp; getFlattenFieldTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00185">SVFType.h:185</a></div></div>
1309
+ <div class="ttc" id="classSVF_1_1StInfo_html_ac0a9f85f90524abfd519d3cd2ac95a56"><div class="ttname"><a href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">SVF::StInfo::getFlattenFieldTypes</a></div><div class="ttdeci">std::vector&lt; const SVFType * &gt; &amp; getFlattenFieldTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00183">SVFType.h:183</a></div></div>
1310
1310
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_aeef0f5c6486379043a7d47b0635f2667"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">SVF::cppUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00123">CPPUtil.cpp:123</a></div></div>
1311
- <div class="ttc" id="classSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00235">SVFType.h:235</a></div></div>
1311
+ <div class="ttc" id="classSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00233">SVFType.h:233</a></div></div>
1312
1312
  <div class="ttc" id="classSVF_1_1StInfo_html"><div class="ttname"><a href="classSVF_1_1StInfo.html">SVF::StInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00131">SVFType.h:131</a></div></div>
1313
1313
  </div><!-- fragment -->
1314
1314
  </div>
@@ -869,9 +869,9 @@ template&lt;class X , class Y &gt; </div>
869
869
  <p>Dump bit vector set </p>
870
870
 
871
871
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00146">146</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
872
- <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ii = bs.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ie = bs.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; O &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
873
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
874
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
872
+ <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> ii = bs.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), ie = bs.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; O &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
873
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
874
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
875
875
  </div><!-- fragment -->
876
876
  </div>
877
877
  </div>
@@ -3353,7 +3353,7 @@ template&lt;typename T &gt; </div>
3353
3353
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00157">157</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3354
3354
  <div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> nbs;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o : pts) nbs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
3355
3355
  <div class="ttc" id="namespaceSVF_html_aa7b6a13e52671de8524b130738aeb564"><div class="ttname"><a href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">SVF::NodeBS</a></div><div class="ttdeci">SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
3356
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
3356
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
3357
3357
  </div><!-- fragment -->
3358
3358
  </div>
3359
3359
  </div>
@@ -287,12 +287,8 @@ Functions</h2></td></tr>
287
287
  </div><div class="memdoc">
288
288
 
289
289
  <p class="definition">Definition at line <a class="el" href="saber_8cpp_source.html#l00053">53</a> of file <a class="el" href="saber_8cpp_source.html">saber.cpp</a>.</p>
290
- <div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Source-Sink Bug Detector\n&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a> *saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FileChecker.html">FileChecker</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DoubleFreeChecker.html">DoubleFreeChecker</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; saber-&gt;<a class="code" href="classSVF_1_1LeakChecker.html#a1a4e10da2b2265a5d1aca6d54e622fda">runOnModule</a>(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="ttc" id="classSVF_1_1LeakChecker_html"><div class="ttname"><a href="classSVF_1_1LeakChecker.html">SVF::LeakChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00042">LeakChecker.h:42</a></div></div>
291
- <div class="ttc" id="classSVF_1_1DoubleFreeChecker_html"><div class="ttname"><a href="classSVF_1_1DoubleFreeChecker.html">SVF::DoubleFreeChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="DoubleFreeChecker_8h_source.html#l00042">DoubleFreeChecker.h:42</a></div></div>
292
- <div class="ttc" id="classSVF_1_1LeakChecker_html_a1a4e10da2b2265a5d1aca6d54e622fda"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a1a4e10da2b2265a5d1aca6d54e622fda">SVF::LeakChecker::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(SVFIR *pag)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00068">LeakChecker.h:68</a></div></div>
293
- <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
290
+ <div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Source-Sink Bug Detector\n&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::unique_ptr&lt;LeakChecker&gt; saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; saber = std::make_unique&lt;LeakChecker&gt;();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; saber = std::make_unique&lt;FileChecker&gt;();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; saber = std::make_unique&lt;DoubleFreeChecker&gt;();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; saber = std::make_unique&lt;LeakChecker&gt;(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; saber-&gt;runOnModule(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
294
291
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
295
- <div class="ttc" id="classSVF_1_1FileChecker_html"><div class="ttname"><a href="classSVF_1_1FileChecker.html">SVF::FileChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8h_source.html#l00042">FileChecker.h:42</a></div></div>
296
292
  <div class="ttc" id="saber_8cpp_html_a3bebf1fb890054c49ae16f9706fa38d2"><div class="ttname"><a href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; LEAKCHECKER(&quot;leak&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Memory Leak Detection&quot;))</div></div>
297
293
  <div class="ttc" id="saber_8cpp_html_ae054770c30aa9b9ef72d5bc84084b472"><div class="ttname"><a href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; FILECHECKER(&quot;fileck&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;File Open/Close Detection&quot;))</div></div>
298
294
  <div class="ttc" id="saber_8cpp_html_ae783b2330e99490ef5d366605d1098cf"><div class="ttname"><a href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; DFREECHECKER(&quot;dfree&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Double Free Detection&quot;))</div></div>
@@ -66,10 +66,7 @@ $(function() {
66
66
  <div class="title">saber.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="saber_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- saber.cpp -- Source-sink bug checker------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // Saber: Software Bug Check.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;&lt;input bitcode&gt;&quot;</span>), llvm::cl::init(<span class="stringliteral">&quot;-&quot;</span>));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>(<span class="stringliteral">&quot;leak&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Memory Leak Detection&quot;</span>));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>(<span class="stringliteral">&quot;fileck&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;File Open/Close Detection&quot;</span>));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>(<span class="stringliteral">&quot;dfree&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Double Free Detection&quot;</span>));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 53</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Source-Sink Bug Detector\n&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a> *saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FileChecker.html">FileChecker</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DoubleFreeChecker.html">DoubleFreeChecker</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; saber-&gt;<a class="code" href="classSVF_1_1LeakChecker.html#a1a4e10da2b2265a5d1aca6d54e622fda">runOnModule</a>(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="ttc" id="classSVF_1_1LeakChecker_html"><div class="ttname"><a href="classSVF_1_1LeakChecker.html">SVF::LeakChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00042">LeakChecker.h:42</a></div></div>
70
- <div class="ttc" id="classSVF_1_1DoubleFreeChecker_html"><div class="ttname"><a href="classSVF_1_1DoubleFreeChecker.html">SVF::DoubleFreeChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="DoubleFreeChecker_8h_source.html#l00042">DoubleFreeChecker.h:42</a></div></div>
71
- <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
72
- <div class="ttc" id="classSVF_1_1LeakChecker_html_a1a4e10da2b2265a5d1aca6d54e622fda"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a1a4e10da2b2265a5d1aca6d54e622fda">SVF::LeakChecker::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(SVFIR *pag)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00068">LeakChecker.h:68</a></div></div>
69
+ <a href="saber_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- saber.cpp -- Source-sink bug checker------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // Saber: Software Bug Check.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;&lt;input bitcode&gt;&quot;</span>), llvm::cl::init(<span class="stringliteral">&quot;-&quot;</span>));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>(<span class="stringliteral">&quot;leak&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Memory Leak Detection&quot;</span>));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>(<span class="stringliteral">&quot;fileck&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;File Open/Close Detection&quot;</span>));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>(<span class="stringliteral">&quot;dfree&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Double Free Detection&quot;</span>));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 53</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="stringliteral">&quot;Source-Sink Bug Detector\n&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::unique_ptr&lt;LeakChecker&gt; saber;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; saber = std::make_unique&lt;LeakChecker&gt;();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; saber = std::make_unique&lt;FileChecker&gt;();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; saber = std::make_unique&lt;DoubleFreeChecker&gt;();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; saber = std::make_unique&lt;LeakChecker&gt;(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; saber-&gt;runOnModule(pag);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
73
70
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5ecf1deb5646ccb46b0b3101417f4689"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build()</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00051">SVFIRBuilder.cpp:51</a></div></div>
74
71
  <div class="ttc" id="saber_8cpp_html_a2d332c504284f0bc181289ee67479845"><div class="ttname"><a href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt&lt; std::string &gt; InputFilename(cl::Positional, llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;), llvm::cl::init(&quot;-&quot;))</div></div>
75
72
  <div class="ttc" id="FileChecker_8h_html"><div class="ttname"><a href="FileChecker_8h.html">FileChecker.h</a></div></div>
@@ -77,7 +74,6 @@ $(function() {
77
74
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
78
75
  <div class="ttc" id="LeakChecker_8h_html"><div class="ttname"><a href="LeakChecker_8h.html">LeakChecker.h</a></div></div>
79
76
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
80
- <div class="ttc" id="classSVF_1_1FileChecker_html"><div class="ttname"><a href="classSVF_1_1FileChecker.html">SVF::FileChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8h_source.html#l00042">FileChecker.h:42</a></div></div>
81
77
  <div class="ttc" id="saber_8cpp_html_a3bebf1fb890054c49ae16f9706fa38d2"><div class="ttname"><a href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; LEAKCHECKER(&quot;leak&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Memory Leak Detection&quot;))</div></div>
82
78
  <div class="ttc" id="Z3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
83
79
  <div class="ttc" id="saber_8cpp_html_ae054770c30aa9b9ef72d5bc84084b472"><div class="ttname"><a href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; FILECHECKER(&quot;fileck&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;File Open/Close Detection&quot;))</div></div>
@@ -94,7 +94,7 @@ var searchData=
94
94
  ['_5fnumversions',['_NumVersions',['../classSVF_1_1VersionedFlowSensitiveStat.html#a7efe89e95b5989f861d934d52d0bbce0',1,'SVF::VersionedFlowSensitiveStat']]],
95
95
  ['_5fpag',['_pag',['../classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe',1,'SVF::DDAVFSolver']]],
96
96
  ['_5fpotentialnumofvarhaveinoutpts',['_PotentialNumOfVarHaveINOUTPts',['../classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97',1,'SVF::FlowSensitiveStat']]],
97
- ['_5fpta',['_pta',['../classSVF_1_1DDAPass.html#a240ffa3ed0963e579db60784f4a21b9f',1,'SVF::DDAPass::_pta()'],['../classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0',1,'SVF::WPAPass::_pta()']]],
97
+ ['_5fpta',['_pta',['../classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86',1,'SVF::DDAPass::_pta()'],['../classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0',1,'SVF::WPAPass::_pta()']]],
98
98
  ['_5fptenditer',['_ptEndIter',['../classSVF_1_1CondPointsToSet_1_1CondPtsSetIterator.html#ae5fe9ff25c62386cbdd97d30b64b6972',1,'SVF::CondPointsToSet::CondPtsSetIterator']]],
99
99
  ['_5fptiter',['_ptIter',['../classSVF_1_1CondPointsToSet_1_1CondPtsSetIterator.html#a2b34cb72c2ecc8e4fc7071b6ed814df9',1,'SVF::CondPointsToSet::CondPtsSetIterator']]],
100
100
  ['_5freles',['_relEs',['../classSVF_1_1SVFIR2ItvExeState.html#ab8bd2de9d86489845f5a74727040b217',1,'SVF::SVFIR2ItvExeState']]],