svf-tools 1.0.619 → 1.0.621

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 (454) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  3. package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
  4. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +9 -4
  5. package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
  6. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
  7. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
  10. package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
  11. package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
  12. package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
  13. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
  16. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -4
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
  20. package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
  21. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
  23. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
  26. package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  29. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  31. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
  32. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
  33. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  35. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
  38. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
  39. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  43. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  50. package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
  51. package/SVF-doxygen/html/html/Options_8cpp_source.html +124 -119
  52. package/SVF-doxygen/html/html/Options_8h.html +1 -1
  53. package/SVF-doxygen/html/html/Options_8h_source.html +125 -120
  54. package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
  55. package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
  56. package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
  57. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  58. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
  59. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  61. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
  62. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  63. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
  64. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
  65. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
  67. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
  68. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
  70. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  71. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
  74. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  75. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  76. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  77. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  78. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  80. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
  81. package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
  82. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/annotated.html +363 -353
  84. package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
  85. package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
  86. package/SVF-doxygen/html/html/classOption-members.html +99 -0
  87. package/SVF-doxygen/html/html/classOption.html +567 -0
  88. package/SVF-doxygen/html/html/classOption.png +0 -0
  89. package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
  90. package/SVF-doxygen/html/html/classOptionBase.html +823 -0
  91. package/SVF-doxygen/html/html/classOptionBase.png +0 -0
  92. package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
  93. package/SVF-doxygen/html/html/classOptionMap.html +428 -0
  94. package/SVF-doxygen/html/html/classOptionMap.png +0 -0
  95. package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
  96. package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
  97. package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
  98. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
  99. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
  100. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
  101. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
  102. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  106. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +33 -30
  107. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -8
  109. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
  111. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
  112. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
  115. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
  116. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
  117. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +6 -6
  119. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
  120. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  124. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
  125. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
  128. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
  130. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
  135. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
  136. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  137. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  139. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
  141. package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
  142. package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
  143. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  144. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
  146. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
  148. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  149. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
  150. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
  155. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  156. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
  157. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
  160. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
  161. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +121 -120
  164. package/SVF-doxygen/html/html/classSVF_1_1Options.html +641 -615
  165. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
  166. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
  169. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +20 -19
  174. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  175. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
  176. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
  180. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  181. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
  182. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
  189. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
  191. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
  192. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  193. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
  197. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
  198. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
  199. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
  200. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
  201. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
  202. package/SVF-doxygen/html/html/classes.html +110 -108
  203. package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
  204. package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
  205. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  206. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
  207. package/SVF-doxygen/html/html/files.html +27 -24
  208. package/SVF-doxygen/html/html/functions.html +7 -1
  209. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  210. package/SVF-doxygen/html/html/functions_a.html +45 -21
  211. package/SVF-doxygen/html/html/functions_b.html +15 -7
  212. package/SVF-doxygen/html/html/functions_c.html +72 -49
  213. package/SVF-doxygen/html/html/functions_d.html +25 -16
  214. package/SVF-doxygen/html/html/functions_e.html +11 -4
  215. package/SVF-doxygen/html/html/functions_f.html +19 -16
  216. package/SVF-doxygen/html/html/functions_func.html +35 -11
  217. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  218. package/SVF-doxygen/html/html/functions_func_b.html +11 -3
  219. package/SVF-doxygen/html/html/functions_func_c.html +55 -34
  220. package/SVF-doxygen/html/html/functions_func_e.html +5 -1
  221. package/SVF-doxygen/html/html/functions_func_f.html +4 -1
  222. package/SVF-doxygen/html/html/functions_func_g.html +26 -7
  223. package/SVF-doxygen/html/html/functions_func_h.html +10 -3
  224. package/SVF-doxygen/html/html/functions_func_i.html +25 -10
  225. package/SVF-doxygen/html/html/functions_func_m.html +3 -2
  226. package/SVF-doxygen/html/html/functions_func_n.html +4 -1
  227. package/SVF-doxygen/html/html/functions_func_o.html +23 -6
  228. package/SVF-doxygen/html/html/functions_func_p.html +15 -3
  229. package/SVF-doxygen/html/html/functions_func_s.html +20 -19
  230. package/SVF-doxygen/html/html/functions_func_t.html +3 -0
  231. package/SVF-doxygen/html/html/functions_func_u.html +3 -0
  232. package/SVF-doxygen/html/html/functions_g.html +28 -9
  233. package/SVF-doxygen/html/html/functions_h.html +13 -6
  234. package/SVF-doxygen/html/html/functions_i.html +44 -20
  235. package/SVF-doxygen/html/html/functions_k.html +1 -1
  236. package/SVF-doxygen/html/html/functions_l.html +4 -4
  237. package/SVF-doxygen/html/html/functions_m.html +14 -13
  238. package/SVF-doxygen/html/html/functions_n.html +9 -5
  239. package/SVF-doxygen/html/html/functions_o.html +48 -25
  240. package/SVF-doxygen/html/html/functions_p.html +65 -34
  241. package/SVF-doxygen/html/html/functions_r.html +7 -9
  242. package/SVF-doxygen/html/html/functions_s.html +34 -32
  243. package/SVF-doxygen/html/html/functions_t.html +17 -8
  244. package/SVF-doxygen/html/html/functions_type_c.html +2 -1
  245. package/SVF-doxygen/html/html/functions_type_d.html +3 -0
  246. package/SVF-doxygen/html/html/functions_type_i.html +2 -1
  247. package/SVF-doxygen/html/html/functions_type_o.html +7 -0
  248. package/SVF-doxygen/html/html/functions_type_p.html +6 -0
  249. package/SVF-doxygen/html/html/functions_type_t.html +3 -0
  250. package/SVF-doxygen/html/html/functions_u.html +6 -3
  251. package/SVF-doxygen/html/html/functions_v.html +7 -5
  252. package/SVF-doxygen/html/html/functions_vars.html +7 -1
  253. package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
  254. package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
  255. package/SVF-doxygen/html/html/functions_vars_c.html +15 -12
  256. package/SVF-doxygen/html/html/functions_vars_d.html +21 -15
  257. package/SVF-doxygen/html/html/functions_vars_e.html +5 -2
  258. package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
  259. package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
  260. package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
  261. package/SVF-doxygen/html/html/functions_vars_i.html +14 -6
  262. package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
  263. package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
  264. package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
  265. package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
  266. package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
  267. package/SVF-doxygen/html/html/functions_vars_p.html +34 -21
  268. package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
  269. package/SVF-doxygen/html/html/functions_vars_s.html +13 -10
  270. package/SVF-doxygen/html/html/functions_vars_t.html +7 -4
  271. package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
  272. package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
  273. package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
  274. package/SVF-doxygen/html/html/functions_w.html +11 -7
  275. package/SVF-doxygen/html/html/globals_d.html +4 -4
  276. package/SVF-doxygen/html/html/globals_e.html +6 -6
  277. package/SVF-doxygen/html/html/globals_f.html +2 -2
  278. package/SVF-doxygen/html/html/globals_func.html +6 -58
  279. package/SVF-doxygen/html/html/globals_i.html +4 -12
  280. package/SVF-doxygen/html/html/globals_l.html +2 -2
  281. package/SVF-doxygen/html/html/globals_r.html +4 -4
  282. package/SVF-doxygen/html/html/globals_s.html +0 -4
  283. package/SVF-doxygen/html/html/globals_type.html +3 -0
  284. package/SVF-doxygen/html/html/globals_u.html +3 -0
  285. package/SVF-doxygen/html/html/globals_vars.html +43 -12
  286. package/SVF-doxygen/html/html/hierarchy.html +517 -496
  287. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  288. package/SVF-doxygen/html/html/menudata.js +1 -2
  289. package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
  290. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  291. package/SVF-doxygen/html/html/namespaceSVF.html +29 -0
  292. package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
  293. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  294. package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
  295. package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
  296. package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
  297. package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
  298. package/SVF-doxygen/html/html/search/all_0.js +2 -1
  299. package/SVF-doxygen/html/html/search/all_1.js +15 -8
  300. package/SVF-doxygen/html/html/search/all_10.js +33 -25
  301. package/SVF-doxygen/html/html/search/all_11.js +9 -9
  302. package/SVF-doxygen/html/html/search/all_12.js +22 -22
  303. package/SVF-doxygen/html/html/search/all_13.js +14 -11
  304. package/SVF-doxygen/html/html/search/all_14.js +5 -4
  305. package/SVF-doxygen/html/html/search/all_15.js +5 -5
  306. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  307. package/SVF-doxygen/html/html/search/all_19.js +6 -0
  308. package/SVF-doxygen/html/html/search/all_2.js +5 -3
  309. package/SVF-doxygen/html/html/search/all_3.js +25 -18
  310. package/SVF-doxygen/html/html/search/all_4.js +20 -18
  311. package/SVF-doxygen/html/html/search/all_5.js +8 -6
  312. package/SVF-doxygen/html/html/search/all_6.js +9 -8
  313. package/SVF-doxygen/html/html/search/all_7.js +9 -3
  314. package/SVF-doxygen/html/html/search/all_8.js +5 -3
  315. package/SVF-doxygen/html/html/search/all_9.js +16 -11
  316. package/SVF-doxygen/html/html/search/all_b.js +2 -2
  317. package/SVF-doxygen/html/html/search/all_c.js +7 -6
  318. package/SVF-doxygen/html/html/search/all_d.js +13 -13
  319. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  320. package/SVF-doxygen/html/html/search/all_f.js +24 -6
  321. package/SVF-doxygen/html/html/search/classes_10.js +1 -0
  322. package/SVF-doxygen/html/html/search/classes_2.js +2 -0
  323. package/SVF-doxygen/html/html/search/classes_7.js +2 -1
  324. package/SVF-doxygen/html/html/search/classes_c.js +15 -0
  325. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  326. package/SVF-doxygen/html/html/search/files_2.js +3 -0
  327. package/SVF-doxygen/html/html/search/functions_0.js +8 -1
  328. package/SVF-doxygen/html/html/search/functions_1.js +4 -2
  329. package/SVF-doxygen/html/html/search/functions_10.js +0 -2
  330. package/SVF-doxygen/html/html/search/functions_11.js +2 -3
  331. package/SVF-doxygen/html/html/search/functions_12.js +1 -0
  332. package/SVF-doxygen/html/html/search/functions_13.js +1 -0
  333. package/SVF-doxygen/html/html/search/functions_17.js +6 -0
  334. package/SVF-doxygen/html/html/search/functions_2.js +5 -1
  335. package/SVF-doxygen/html/html/search/functions_3.js +0 -2
  336. package/SVF-doxygen/html/html/search/functions_4.js +2 -4
  337. package/SVF-doxygen/html/html/search/functions_5.js +2 -1
  338. package/SVF-doxygen/html/html/search/functions_6.js +7 -1
  339. package/SVF-doxygen/html/html/search/functions_7.js +4 -2
  340. package/SVF-doxygen/html/html/search/functions_8.js +6 -3
  341. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  342. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  343. package/SVF-doxygen/html/html/search/functions_d.js +1 -0
  344. package/SVF-doxygen/html/html/search/functions_e.js +7 -3
  345. package/SVF-doxygen/html/html/search/functions_f.js +3 -0
  346. package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
  347. package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
  348. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  349. package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
  350. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  351. package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
  352. package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
  353. package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
  354. package/SVF-doxygen/html/html/search/variables_0.js +2 -1
  355. package/SVF-doxygen/html/html/search/variables_1.js +7 -7
  356. package/SVF-doxygen/html/html/search/variables_10.js +25 -21
  357. package/SVF-doxygen/html/html/search/variables_11.js +7 -5
  358. package/SVF-doxygen/html/html/search/variables_12.js +11 -10
  359. package/SVF-doxygen/html/html/search/variables_13.js +9 -8
  360. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  361. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  362. package/SVF-doxygen/html/html/search/variables_16.js +3 -3
  363. package/SVF-doxygen/html/html/search/variables_2.js +1 -1
  364. package/SVF-doxygen/html/html/search/variables_3.js +13 -12
  365. package/SVF-doxygen/html/html/search/variables_4.js +19 -15
  366. package/SVF-doxygen/html/html/search/variables_5.js +6 -2
  367. package/SVF-doxygen/html/html/search/variables_6.js +7 -6
  368. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  369. package/SVF-doxygen/html/html/search/variables_8.js +1 -1
  370. package/SVF-doxygen/html/html/search/variables_9.js +9 -7
  371. package/SVF-doxygen/html/html/search/variables_b.js +1 -1
  372. package/SVF-doxygen/html/html/search/variables_c.js +5 -4
  373. package/SVF-doxygen/html/html/search/variables_d.js +11 -11
  374. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  375. package/SVF-doxygen/html/html/search/variables_f.js +3 -2
  376. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
  377. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  378. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
  379. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  380. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
  381. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
  382. package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
  383. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
  384. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  385. package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
  386. package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
  387. package/include/CFL/CFLAlias.h +34 -0
  388. package/include/CFL/CFLData.h +316 -0
  389. package/include/CFL/CFLDataBuilder.h +91 -0
  390. package/include/CFL/CFLSolver.h +21 -0
  391. package/include/Util/CommandLine.h +527 -0
  392. package/include/Util/Options.h +125 -124
  393. package/include/WPA/Andersen.h +5 -5
  394. package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
  395. package/lib/CFL/CFLAlias.cpp +40 -4
  396. package/lib/CFL/CFLBase.cpp +4 -4
  397. package/lib/CFL/CFLGraphBuilder.cpp +2 -2
  398. package/lib/CFL/CFLVF.cpp +5 -5
  399. package/lib/DDA/ContextDDA.cpp +1 -1
  400. package/lib/DDA/DDAPass.cpp +14 -13
  401. package/lib/DDA/FlowDDA.cpp +1 -1
  402. package/lib/Graphs/ConsG.cpp +10 -10
  403. package/lib/Graphs/ICFG.cpp +1 -1
  404. package/lib/Graphs/IRGraph.cpp +2 -2
  405. package/lib/Graphs/SVFG.cpp +5 -5
  406. package/lib/Graphs/SVFGOPT.cpp +5 -5
  407. package/lib/Graphs/VFG.cpp +1 -1
  408. package/lib/MSSA/MemRegion.cpp +2 -2
  409. package/lib/MSSA/MemSSA.cpp +4 -4
  410. package/lib/MSSA/SVFGBuilder.cpp +4 -4
  411. package/lib/MTA/FSMPTA.cpp +13 -13
  412. package/lib/MTA/MHP.cpp +1 -1
  413. package/lib/MTA/MTA.cpp +2 -2
  414. package/lib/MTA/MTAStat.cpp +1 -1
  415. package/lib/MTA/PCG.cpp +8 -2
  416. package/lib/MTA/TCT.cpp +2 -2
  417. package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
  418. package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
  419. package/lib/MemoryModel/PointsTo.cpp +1 -1
  420. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  421. package/lib/SABER/LeakChecker.cpp +1 -1
  422. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  423. package/lib/SABER/SrcSnkDDA.cpp +5 -5
  424. package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
  425. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  426. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
  427. package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
  428. package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
  429. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
  430. package/lib/SVFIR/SVFIR.cpp +4 -4
  431. package/lib/SVFIR/SVFStatements.cpp +16 -16
  432. package/lib/SVFIR/SVFVariables.cpp +5 -5
  433. package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
  434. package/lib/Util/NodeIDAllocator.cpp +9 -9
  435. package/lib/Util/Options.cpp +431 -412
  436. package/lib/Util/SVFStat.cpp +5 -5
  437. package/lib/Util/SVFUtil.cpp +1 -1
  438. package/lib/Util/Z3Expr.cpp +2 -2
  439. package/lib/WPA/Andersen.cpp +13 -13
  440. package/lib/WPA/AndersenSCD.cpp +3 -3
  441. package/lib/WPA/FlowSensitive.cpp +8 -8
  442. package/lib/WPA/TypeAnalysis.cpp +1 -1
  443. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  444. package/lib/WPA/WPAPass.cpp +10 -9
  445. package/package.json +1 -1
  446. package/tools/CFL/cfl.cpp +8 -14
  447. package/tools/DDA/dda.cpp +39 -29
  448. package/tools/Example/svf-ex.cpp +5 -8
  449. package/tools/MTA/LockResultValidator.cpp +2 -2
  450. package/tools/MTA/MTAAnnotator.cpp +5 -5
  451. package/tools/MTA/MTAResultValidator.cpp +8 -8
  452. package/tools/MTA/mta.cpp +5 -8
  453. package/tools/SABER/saber.cpp +23 -17
  454. package/tools/WPA/wpa.cpp +6 -9
@@ -164,7 +164,7 @@ $(function() {
164
164
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector&lt; std::string &gt; getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00094">MTAResultValidator.cpp:94</a></div></div>
165
165
  <div class="ttc" id="namespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
166
166
  <div class="ttc" id="classSVF_1_1RaceResultValidator_html_ade9f150c970aa2cc481c878aebf71662"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#ade9f150c970aa2cc481c878aebf71662">SVF::RaceResultValidator::mayAccessAliases</a></div><div class="ttdeci">virtual bool mayAccessAliases(const Instruction *I1, const Instruction *I2)</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00244">MTAResultValidator.h:244</a></div></div>
167
- <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00932">LLVMModule.cpp:932</a></div></div>
167
+ <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00938">LLVMModule.cpp:938</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1RaceResultValidator_html"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html">SVF::RaceResultValidator</a></div><div class="ttdoc">Validate the result of concurrent analysis. </div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00169">MTAResultValidator.h:169</a></div></div>
169
169
  <div class="ttc" id="classSVF_1_1RaceResultValidator_html_a1df6b00752e373ac7bf08a2cae0b9641"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a1df6b00752e373ac7bf08a2cae0b9641">SVF::RaceResultValidator::mayHaveDataRace</a></div><div class="ttdeci">virtual bool mayHaveDataRace(const Instruction *I1, const Instruction *I2)</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00262">MTAResultValidator.h:262</a></div></div>
170
170
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00075">SVFUtil.cpp:75</a></div></div>
@@ -255,13 +255,11 @@ var menudata={children:[
255
255
  {text:"a",url:"globals_func.html#index_a"},
256
256
  {text:"b",url:"globals_func.html#index_b"},
257
257
  {text:"c",url:"globals_func.html#index_c"},
258
- {text:"d",url:"globals_func.html#index_d"},
259
258
  {text:"e",url:"globals_func.html#index_e"},
260
259
  {text:"f",url:"globals_func.html#index_f"},
261
260
  {text:"g",url:"globals_func.html#index_g"},
262
261
  {text:"h",url:"globals_func.html#index_h"},
263
262
  {text:"i",url:"globals_func.html#index_i"},
264
- {text:"l",url:"globals_func.html#index_l"},
265
263
  {text:"m",url:"globals_func.html#index_m"},
266
264
  {text:"p",url:"globals_func.html#index_p"},
267
265
  {text:"r",url:"globals_func.html#index_r"},
@@ -274,6 +272,7 @@ var menudata={children:[
274
272
  {text:"a",url:"globals_vars.html#index_a"},
275
273
  {text:"b",url:"globals_vars.html#index_b"},
276
274
  {text:"c",url:"globals_vars.html#index_c"},
275
+ {text:"d",url:"globals_vars.html#index_d"},
277
276
  {text:"e",url:"globals_vars.html#index_e"},
278
277
  {text:"f",url:"globals_vars.html#index_f"},
279
278
  {text:"g",url:"globals_vars.html#index_g"},
@@ -71,6 +71,7 @@ $(function() {
71
71
  <div class="textblock"><code>#include &quot;<a class="el" href="LLVMUtil_8h_source.html">SVF-LLVM/LLVMUtil.h</a>&quot;</code><br />
72
72
  <code>#include &quot;<a class="el" href="SVFIRBuilder_8h_source.html">SVF-LLVM/SVFIRBuilder.h</a>&quot;</code><br />
73
73
  <code>#include &quot;<a class="el" href="MTA_8h_source.html">MTA/MTA.h</a>&quot;</code><br />
74
+ <code>#include &quot;<a class="el" href="CommandLine_8h_source.html">Util/CommandLine.h</a>&quot;</code><br />
74
75
  <code>#include &quot;<a class="el" href="Options_8h_source.html">Util/Options.h</a>&quot;</code><br />
75
76
  <code>#include &quot;<a class="el" href="tools_2MTA_2MTAResultValidator_8h_source.html">MTAResultValidator.h</a>&quot;</code><br />
76
77
  <code>#include &quot;<a class="el" href="LockResultValidator_8h_source.html">LockResultValidator.h</a>&quot;</code><br />
@@ -79,54 +80,10 @@ $(function() {
79
80
  <table class="memberdecls">
80
81
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
81
82
  Functions</h2></td></tr>
82
- <tr class="memitem:a139199e1f33675df72b018c31e0be35c"><td class="memItemLeft" align="right" valign="top">static llvm::cl::opt&lt; <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mta_8cpp.html#a139199e1f33675df72b018c31e0be35c">InputFilename</a> (llvm::cl::Positional, llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;), llvm::cl::init(&quot;-&quot;))</td></tr>
83
- <tr class="separator:a139199e1f33675df72b018c31e0be35c"><td class="memSeparator" colspan="2">&#160;</td></tr>
84
83
  <tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
85
84
  <tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
86
85
  </table>
87
86
  <h2 class="groupheader">Function Documentation</h2>
88
- <a id="a139199e1f33675df72b018c31e0be35c"></a>
89
- <h2 class="memtitle"><span class="permalink"><a href="#a139199e1f33675df72b018c31e0be35c">&#9670;&nbsp;</a></span>InputFilename()</h2>
90
-
91
- <div class="memitem">
92
- <div class="memproto">
93
- <table class="mlabels">
94
- <tr>
95
- <td class="mlabels-left">
96
- <table class="memname">
97
- <tr>
98
- <td class="memname">static llvm::cl::opt&lt;<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&gt; InputFilename </td>
99
- <td>(</td>
100
- <td class="paramtype">llvm::cl::Positional&#160;</td>
101
- <td class="paramname">, </td>
102
- </tr>
103
- <tr>
104
- <td class="paramkey"></td>
105
- <td></td>
106
- <td class="paramtype">llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;)&#160;</td>
107
- <td class="paramname">, </td>
108
- </tr>
109
- <tr>
110
- <td class="paramkey"></td>
111
- <td></td>
112
- <td class="paramtype">llvm::cl::init(&quot;-&quot;)&#160;</td>
113
- <td class="paramname">&#160;</td>
114
- </tr>
115
- <tr>
116
- <td></td>
117
- <td>)</td>
118
- <td></td><td></td>
119
- </tr>
120
- </table>
121
- </td>
122
- <td class="mlabels-right">
123
- <span class="mlabels"><span class="mlabel">static</span></span> </td>
124
- </tr>
125
- </table>
126
- </div><div class="memdoc">
127
-
128
- </div>
129
- </div>
130
87
  <a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
131
88
  <h2 class="memtitle"><span class="permalink"><a href="#a3c04138a5bfe5d72780bb7e82a18e627">&#9670;&nbsp;</a></span>main()</h2>
132
89
 
@@ -153,8 +110,8 @@ Functions</h2></td></tr>
153
110
  </table>
154
111
  </div><div class="memdoc">
155
112
 
156
- <p class="definition">Definition at line <a class="el" href="mta_8cpp_source.html#l00014">14</a> of file <a class="el" href="mta_8cpp_source.html">mta.cpp</a>.</p>
157
- <div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="stringliteral">&quot;MTA Analysis\n&quot;</span>);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</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; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1MTA.html">MTA</a> mta;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; mta.<a class="code" href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">runOnModule</a>(pag);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classSVF_1_1MTAResultValidator.html">MTAResultValidator</a> MTAValidator(mta.<a class="code" href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">getMHP</a>());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; MTAValidator.<a class="code" href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">analyze</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Initialize the validator and perform validation.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html">LockResultValidator</a> lockvalidator(mta.<a class="code" href="classSVF_1_1MTA.html#a76ea96c430365132011f1a4edf0d5570">getLockAnalysis</a>());</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; lockvalidator.<a class="code" href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">analyze</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="classSVF_1_1LockResultValidator_html"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html">SVF::LockResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00019">LockResultValidator.h:19</a></div></div>
113
+ <p class="definition">Definition at line <a class="el" href="mta_8cpp_source.html#l00012">12</a> of file <a class="el" href="mta_8cpp_source.html">mta.cpp</a>.</p>
114
+ <div class="fragment"><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</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="l00016"></a><span class="lineno"> 16</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; argc, argv, <span class="stringliteral">&quot;MTA Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; );</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classSVF_1_1MTA.html">MTA</a> mta;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; mta.<a class="code" href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">runOnModule</a>(pag);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1MTAResultValidator.html">MTAResultValidator</a> MTAValidator(mta.<a class="code" href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">getMHP</a>());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; MTAValidator.<a class="code" href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">analyze</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Initialize the validator and perform validation.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html">LockResultValidator</a> lockvalidator(mta.<a class="code" href="classSVF_1_1MTA.html#a76ea96c430365132011f1a4edf0d5570">getLockAnalysis</a>());</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; lockvalidator.<a class="code" href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">analyze</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="classSVF_1_1LockResultValidator_html"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html">SVF::LockResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00019">LockResultValidator.h:19</a></div></div>
158
115
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html">SVF::MTAResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00022">MTAResultValidator.h:22</a></div></div>
159
116
  <div class="ttc" id="classSVF_1_1MTA_html_a8cfcfb26e22cc40260f6df6d50701bdb"><div class="ttname"><a href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">SVF::MTA::getMHP</a></div><div class="ttdeci">MHP * getMHP()</div><div class="ttdef"><b>Definition:</b> <a href="MTA_8h_source.html#l00081">MTA.h:81</a></div></div>
160
117
  <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>
@@ -162,7 +119,7 @@ Functions</h2></td></tr>
162
119
  <div class="ttc" id="classSVF_1_1MTA_html_ad9172b17fa738bff616771df6f9e9c37"><div class="ttname"><a href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">SVF::MTA::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(SVFIR *module)</div><div class="ttdoc">We start the pass here. </div><div class="ttdef"><b>Definition:</b> <a href="MTA_8cpp_source.html#l00062">MTA.cpp:62</a></div></div>
163
120
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a462f1554e058b656861abfb0aa2e47ff"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">SVF::MTAResultValidator::analyze</a></div><div class="ttdeci">void analyze()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00039">MTAResultValidator.cpp:39</a></div></div>
164
121
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_a88ff3ed1398a0b847d71a4c0352ed66d"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">SVF::LockResultValidator::analyze</a></div><div class="ttdeci">void analyze()</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00201">LockResultValidator.cpp:201</a></div></div>
165
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
122
+ <div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
166
123
  <div class="ttc" id="classSVF_1_1MTA_html"><div class="ttname"><a href="classSVF_1_1MTA.html">SVF::MTA</a></div><div class="ttdef"><b>Definition:</b> <a href="MTA_8h_source.html#l00056">MTA.h:56</a></div></div>
167
124
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
168
125
  <div class="ttc" id="classSVF_1_1MTA_html_a76ea96c430365132011f1a4edf0d5570"><div class="ttname"><a href="classSVF_1_1MTA.html#a76ea96c430365132011f1a4edf0d5570">SVF::MTA::getLockAnalysis</a></div><div class="ttdeci">LockAnalysis * getLockAnalysis()</div><div class="ttdef"><b>Definition:</b> <a href="MTA_8h_source.html#l00086">MTA.h:86</a></div></div>
@@ -66,18 +66,18 @@ $(function() {
66
66
  <div class="title">mta.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="mta_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="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</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="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MTA_8h.html">MTA/MTA.h</a>&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</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="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tools_2MTA_2MTAResultValidator_8h.html">MTAResultValidator.h</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LockResultValidator_8h.html">LockResultValidator.h</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="mta_8cpp.html#a139199e1f33675df72b018c31e0be35c">InputFilename</a>(llvm::cl::Positional,</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</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="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 14</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="stringliteral">&quot;MTA Analysis\n&quot;</span>);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</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; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</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="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1MTA.html">MTA</a> mta;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; mta.<a class="code" href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">runOnModule</a>(pag);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classSVF_1_1MTAResultValidator.html">MTAResultValidator</a> MTAValidator(mta.<a class="code" href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">getMHP</a>());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; MTAValidator.<a class="code" href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">analyze</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Initialize the validator and perform validation.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html">LockResultValidator</a> lockvalidator(mta.<a class="code" href="classSVF_1_1MTA.html#a76ea96c430365132011f1a4edf0d5570">getLockAnalysis</a>());</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; lockvalidator.<a class="code" href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">analyze</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="tools_2MTA_2MTAResultValidator_8h_html"><div class="ttname"><a href="tools_2MTA_2MTAResultValidator_8h.html">MTAResultValidator.h</a></div></div>
69
+ <a href="mta_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="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</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="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MTA_8h.html">MTA/MTA.h</a>&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CommandLine_8h.html">Util/CommandLine.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</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="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="tools_2MTA_2MTAResultValidator_8h.html">MTAResultValidator.h</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LockResultValidator_8h.html">LockResultValidator.h</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 12</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</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="l00016"></a><span class="lineno"> 16</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; argc, argv, <span class="stringliteral">&quot;MTA Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; );</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</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="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="classSVF_1_1MTA.html">MTA</a> mta;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; mta.<a class="code" href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">runOnModule</a>(pag);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1MTAResultValidator.html">MTAResultValidator</a> MTAValidator(mta.<a class="code" href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">getMHP</a>());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; MTAValidator.<a class="code" href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">analyze</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Initialize the validator and perform validation.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html">LockResultValidator</a> lockvalidator(mta.<a class="code" href="classSVF_1_1MTA.html#a76ea96c430365132011f1a4edf0d5570">getLockAnalysis</a>());</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; lockvalidator.<a class="code" href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">analyze</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="ttc" id="tools_2MTA_2MTAResultValidator_8h_html"><div class="ttname"><a href="tools_2MTA_2MTAResultValidator_8h.html">MTAResultValidator.h</a></div></div>
70
70
  <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>
71
71
  <div class="ttc" id="classSVF_1_1LockResultValidator_html"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html">SVF::LockResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00019">LockResultValidator.h:19</a></div></div>
72
- <div class="ttc" id="mta_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="mta_8cpp_source.html#l00014">mta.cpp:14</a></div></div>
72
+ <div class="ttc" id="mta_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="mta_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="mta_8cpp_source.html#l00012">mta.cpp:12</a></div></div>
73
73
  <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
74
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html">SVF::MTAResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00022">MTAResultValidator.h:22</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1MTA_html_a8cfcfb26e22cc40260f6df6d50701bdb"><div class="ttname"><a href="classSVF_1_1MTA.html#a8cfcfb26e22cc40260f6df6d50701bdb">SVF::MTA::getMHP</a></div><div class="ttdeci">MHP * getMHP()</div><div class="ttdef"><b>Definition:</b> <a href="MTA_8h_source.html#l00081">MTA.h:81</a></div></div>
76
76
  <div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
77
77
  <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
78
  <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>
79
+ <div class="ttc" id="CommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
79
80
  <div class="ttc" id="LockResultValidator_8h_html"><div class="ttname"><a href="LockResultValidator_8h.html">LockResultValidator.h</a></div></div>
80
- <div class="ttc" id="mta_8cpp_html_a139199e1f33675df72b018c31e0be35c"><div class="ttname"><a href="mta_8cpp.html#a139199e1f33675df72b018c31e0be35c">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt&lt; std::string &gt; InputFilename(llvm::cl::Positional, llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;), llvm::cl::init(&quot;-&quot;))</div></div>
81
81
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1MTA_html_ad9172b17fa738bff616771df6f9e9c37"><div class="ttname"><a href="classSVF_1_1MTA.html#ad9172b17fa738bff616771df6f9e9c37">SVF::MTA::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(SVFIR *module)</div><div class="ttdoc">We start the pass here. </div><div class="ttdef"><b>Definition:</b> <a href="MTA_8cpp_source.html#l00062">MTA.cpp:62</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a462f1554e058b656861abfb0aa2e47ff"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">SVF::MTAResultValidator::analyze</a></div><div class="ttdeci">void analyze()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00039">MTAResultValidator.cpp:39</a></div></div>
@@ -85,7 +85,7 @@ $(function() {
85
85
  <div class="ttc" id="MTA_8h_html"><div class="ttname"><a href="MTA_8h.html">MTA.h</a></div></div>
86
86
  <div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_a88ff3ed1398a0b847d71a4c0352ed66d"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#a88ff3ed1398a0b847d71a4c0352ed66d">SVF::LockResultValidator::analyze</a></div><div class="ttdeci">void analyze()</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00201">LockResultValidator.cpp:201</a></div></div>
88
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
88
+ <div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1MTA_html"><div class="ttname"><a href="classSVF_1_1MTA.html">SVF::MTA</a></div><div class="ttdef"><b>Definition:</b> <a href="MTA_8h_source.html#l00056">MTA.h:56</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
91
91
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
@@ -166,6 +166,10 @@ Classes</h2></td></tr>
166
166
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLBase.html">CFLBase</a></td></tr>
167
167
  <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL Client Base Class. <a href="classSVF_1_1CFLBase.html#details">More...</a><br /></td></tr>
168
168
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLData.html">CFLData</a></td></tr>
170
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
171
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLDataBuilder.html">CFLDataBuilder</a></td></tr>
172
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
173
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLEdge.html">CFLEdge</a></td></tr>
170
174
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
171
175
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLFIFOWorkList.html">CFLFIFOWorkList</a></td></tr>
@@ -450,6 +454,8 @@ Classes</h2></td></tr>
450
454
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
451
455
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html">Hash&lt; std::pair&lt; S, T &gt; &gt;</a></td></tr>
452
456
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
457
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html">HybridData</a></td></tr>
458
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
453
459
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html">ICFG</a></td></tr>
454
460
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
455
461
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGBuilder.html">ICFGBuilder</a></td></tr>
@@ -619,6 +625,11 @@ Classes</h2></td></tr>
619
625
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
620
626
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a></td></tr>
621
627
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
628
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1POCRAlias.html">POCRAlias</a></td></tr>
629
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
630
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1POCRSolver.html">POCRSolver</a></td></tr>
631
+ <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solver Utilize <a class="el" href="classSVF_1_1CFLData.html">CFLData</a>. <a href="classSVF_1_1POCRSolver.html#details">More...</a><br /></td></tr>
632
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
622
633
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSVF_1_1pointee__iter.html">pointee_iter</a></td></tr>
623
634
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
624
635
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1pointer__iterator.html">pointer_iterator</a></td></tr>
@@ -861,6 +872,8 @@ Classes</h2></td></tr>
861
872
  </table><table class="memberdecls">
862
873
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
863
874
  Typedefs</h2></td></tr>
875
+ <tr class="memitem:a3e0f8e5e6b3c433f557a1ca8e17599c9"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">Label</a></td></tr>
876
+ <tr class="separator:a3e0f8e5e6b3c433f557a1ca8e17599c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
864
877
  <tr class="memitem:aa612d67dfa9b0c2999eeef980ca6c893"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1CxtStmtDPItem.html">CxtStmtDPItem</a>&lt; <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF.html#aa612d67dfa9b0c2999eeef980ca6c893">CxtLocDPItem</a></td></tr>
865
878
  <tr class="separator:aa612d67dfa9b0c2999eeef980ca6c893"><td class="memSeparator" colspan="2">&#160;</td></tr>
866
879
  <tr class="memitem:aa50ee8563f99ba1eb897301f55e9d855"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1StmtDPItem.html">StmtDPItem</a>&lt; <a class="el" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF.html#aa50ee8563f99ba1eb897301f55e9d855">LocDPItem</a></td></tr>
@@ -3190,6 +3203,22 @@ Functions</h2></td></tr>
3190
3203
 
3191
3204
  <p class="definition">Definition at line <a class="el" href="BasicTypes_8h_source.html#l00048">48</a> of file <a class="el" href="BasicTypes_8h_source.html">BasicTypes.h</a>.</p>
3192
3205
 
3206
+ </div>
3207
+ </div>
3208
+ <a id="a3e0f8e5e6b3c433f557a1ca8e17599c9"></a>
3209
+ <h2 class="memtitle"><span class="permalink"><a href="#a3e0f8e5e6b3c433f557a1ca8e17599c9">&#9670;&nbsp;</a></span>Label</h2>
3210
+
3211
+ <div class="memitem">
3212
+ <div class="memproto">
3213
+ <table class="memname">
3214
+ <tr>
3215
+ <td class="memname">typedef <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> <a class="el" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">SVF::Label</a></td>
3216
+ </tr>
3217
+ </table>
3218
+ </div><div class="memdoc">
3219
+
3220
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00043">43</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
3221
+
3193
3222
  </div>
3194
3223
  </div>
3195
3224
  <a id="afa513a3c76371907221ee2b1ef289c71"></a>
@@ -71,7 +71,7 @@ $(function() {
71
71
  <table class="memberdecls">
72
72
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
73
73
  Functions</h2></td></tr>
74
- <tr class="memitem:a9e3127c2bbedaec1f20d4437bea9e2f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1DOT.html#a9e3127c2bbedaec1f20d4437bea9e2f7">EscapeStr</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;Label)</td></tr>
74
+ <tr class="memitem:a9e3127c2bbedaec1f20d4437bea9e2f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1DOT.html#a9e3127c2bbedaec1f20d4437bea9e2f7">EscapeStr</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;<a class="el" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">Label</a>)</td></tr>
75
75
  <tr class="separator:a9e3127c2bbedaec1f20d4437bea9e2f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
76
76
  </table>
77
77
  <h2 class="groupheader">Function Documentation</h2>
@@ -92,7 +92,8 @@ Functions</h2></td></tr>
92
92
  </div><div class="memdoc">
93
93
 
94
94
  <p class="definition">Definition at line <a class="el" href="GraphWriter_8cpp_source.html#l00012">12</a> of file <a class="el" href="GraphWriter_8cpp_source.html">GraphWriter.cpp</a>.</p>
95
- <div class="fragment"><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> Str(Label);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Str.length(); ++i)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">switch</span> (Str[i])</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="keywordflow">case</span> <span class="charliteral">&#39;\n&#39;</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39;\\&#39;</span>); <span class="comment">// Escape character...</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; ++i;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; Str[i] = <span class="charliteral">&#39;n&#39;</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\t&#39;</span>:</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39; &#39;</span>); <span class="comment">// Convert to two spaces</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ++i;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Str[i] = <span class="charliteral">&#39; &#39;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span> (i+1 != Str.length())</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">switch</span> (Str[i+1])</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;l&#39;</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">continue</span>; <span class="comment">// don&#39;t disturb \l</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; Str.erase(Str.begin()+i);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&lt;&#39;</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&gt;&#39;</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&quot;&#39;</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39;\\&#39;</span>); <span class="comment">// Escape character...</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ++i; <span class="comment">// don&#39;t infinite loop</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> Str;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
95
+ <div class="fragment"><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> Str(<a class="code" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">Label</a>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != Str.length(); ++i)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">switch</span> (Str[i])</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="keywordflow">case</span> <span class="charliteral">&#39;\n&#39;</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39;\\&#39;</span>); <span class="comment">// Escape character...</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; ++i;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; Str[i] = <span class="charliteral">&#39;n&#39;</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\t&#39;</span>:</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39; &#39;</span>); <span class="comment">// Convert to two spaces</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ++i;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Str[i] = <span class="charliteral">&#39; &#39;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;\\&#39;</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span> (i+1 != Str.length())</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">switch</span> (Str[i+1])</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;l&#39;</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">continue</span>; <span class="comment">// don&#39;t disturb \l</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; Str.erase(Str.begin()+i);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;{&#39;</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;}&#39;</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&lt;&#39;</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&gt;&#39;</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;|&#39;</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;&quot;&#39;</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; Str.insert(Str.begin()+i, <span class="charliteral">&#39;\\&#39;</span>); <span class="comment">// Escape character...</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ++i; <span class="comment">// don&#39;t infinite loop</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> Str;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a3e0f8e5e6b3c433f557a1ca8e17599c9"><div class="ttname"><a href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">SVF::Label</a></div><div class="ttdeci">GrammarBase::Symbol Label</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00043">CFLData.h:43</a></div></div>
96
+ <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
96
97
  </div><!-- fragment -->
97
98
  </div>
98
99
  </div>
@@ -3625,7 +3625,7 @@ template&lt;typename Key , typename KeySet &gt; </div>
3625
3625
  <p>Writes a message run through wrnMsg. </p>
3626
3626
 
3627
3627
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00066">66</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
3628
- <div class="fragment"><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; <span class="keywordflow">if</span>(Options::DisableWarn) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(msg) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
3628
+ <div class="fragment"><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; <span class="keywordflow">if</span>(Options::DisableWarn()) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(msg) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
3629
3629
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6c06020737f7dff22a666b75c28c5e7d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(std::string msg)</div><div class="ttdoc">Returns warning message by converting a string into yellow string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00061">SVFUtil.cpp:61</a></div></div>
3630
3630
  </div><!-- fragment -->
3631
3631
  </div>
@@ -61,6 +61,9 @@ $(function() {
61
61
  <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
62
62
 
63
63
  <h3><a id="index_l"></a>- l -</h3><ul>
64
+ <li>Label
65
+ : <a class="el" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">SVF</a>
66
+ </li>
64
67
  <li>LandingPadInst
65
68
  : <a class="el" href="namespaceSVF.html#afa513a3c76371907221ee2b1ef289c71">SVF</a>
66
69
  </li>
@@ -61,6 +61,9 @@ $(function() {
61
61
  &#160;
62
62
 
63
63
  <h3><a id="index_l"></a>- l -</h3><ul>
64
+ <li>Label
65
+ : <a class="el" href="namespaceSVF.html#a3e0f8e5e6b3c433f557a1ca8e17599c9">SVF</a>
66
+ </li>
64
67
  <li>LandingPadInst
65
68
  : <a class="el" href="namespaceSVF.html#afa513a3c76371907221ee2b1ef289c71">SVF</a>
66
69
  </li>