svf-tools 1.0.613 → 1.0.614

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +23 -28
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +4 -4
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  180. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  182. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  183. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  186. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  190. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  191. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  192. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  194. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  195. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  198. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  199. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  200. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  201. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  202. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  206. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  207. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  210. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  216. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  217. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  219. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +106 -92
  223. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  224. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  225. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  227. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  228. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  230. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  231. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  232. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  233. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  234. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  235. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  236. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  237. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  239. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  241. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  243. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  246. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  247. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  249. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  251. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  252. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  259. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  260. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  271. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  272. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  273. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  276. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  332. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  333. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  334. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  335. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  336. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  337. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  339. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  341. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  342. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  343. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  344. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  345. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  347. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  348. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  349. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  350. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  351. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +29 -32
  352. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  354. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  355. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  356. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  357. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  359. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  361. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  362. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  364. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  366. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  367. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  368. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  369. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  370. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  371. package/SVF-doxygen/html/html/functions.html +1 -1
  372. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  373. package/SVF-doxygen/html/html/functions_a.html +7 -7
  374. package/SVF-doxygen/html/html/functions_b.html +6 -6
  375. package/SVF-doxygen/html/html/functions_c.html +27 -27
  376. package/SVF-doxygen/html/html/functions_d.html +10 -11
  377. package/SVF-doxygen/html/html/functions_e.html +2 -2
  378. package/SVF-doxygen/html/html/functions_f.html +6 -6
  379. package/SVF-doxygen/html/html/functions_func.html +6 -6
  380. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  381. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  382. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  383. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  384. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  385. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  386. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  387. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  388. package/SVF-doxygen/html/html/functions_func_i.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  390. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  391. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  392. package/SVF-doxygen/html/html/functions_func_s.html +5 -5
  393. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  394. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  395. package/SVF-doxygen/html/html/functions_g.html +25 -28
  396. package/SVF-doxygen/html/html/functions_h.html +3 -3
  397. package/SVF-doxygen/html/html/functions_i.html +5 -5
  398. package/SVF-doxygen/html/html/functions_m.html +1 -1
  399. package/SVF-doxygen/html/html/functions_o.html +13 -13
  400. package/SVF-doxygen/html/html/functions_p.html +19 -19
  401. package/SVF-doxygen/html/html/functions_r.html +11 -12
  402. package/SVF-doxygen/html/html/functions_s.html +32 -35
  403. package/SVF-doxygen/html/html/functions_t.html +12 -12
  404. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  405. package/SVF-doxygen/html/html/functions_u.html +26 -23
  406. package/SVF-doxygen/html/html/functions_v.html +6 -6
  407. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  408. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  409. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  410. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  411. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  413. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  414. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  416. package/SVF-doxygen/html/html/functions_w.html +3 -7
  417. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  418. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  419. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  420. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  421. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  422. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  423. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  424. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  425. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  426. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  427. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  428. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  429. package/SVF-doxygen/html/html/search/all_12.js +19 -20
  430. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  431. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  432. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  433. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  434. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  435. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  436. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  437. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  438. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  439. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  440. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  441. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  442. package/SVF-doxygen/html/html/search/all_9.js +3 -3
  443. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  444. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  445. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  447. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  448. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  449. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  450. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  451. package/SVF-doxygen/html/html/search/functions_11.js +10 -10
  452. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  453. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  454. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  455. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  456. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  457. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  458. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  459. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  460. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  461. package/SVF-doxygen/html/html/search/functions_8.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  463. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  464. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  465. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  466. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  467. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  468. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  469. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  470. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  471. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  472. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  473. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  474. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  475. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  476. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  477. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  478. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  479. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  481. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  482. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  484. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  485. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  486. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  487. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  488. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  489. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  490. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  491. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  492. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  493. package/build.sh +2 -2
  494. package/include/DDA/DDAPass.h +1 -1
  495. package/include/DDA/FlowDDA.h +1 -1
  496. package/include/Graphs/ICFG.h +1 -1
  497. package/include/Graphs/SVFG.h +3 -4
  498. package/include/Graphs/SVFGOPT.h +7 -7
  499. package/include/MSSA/MemSSA.h +2 -0
  500. package/include/MSSA/SVFGBuilder.h +5 -14
  501. package/include/MTA/MTA.h +2 -2
  502. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  503. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  504. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  505. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  506. package/include/MemoryModel/PointsTo.h +24 -24
  507. package/include/SABER/SrcSnkDDA.h +10 -13
  508. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  509. package/include/SVF-LLVM/LLVMModule.h +6 -6
  510. package/include/SVFIR/SVFIR.h +3 -5
  511. package/include/SVFIR/SVFType.h +6 -8
  512. package/include/SVFIR/SVFValue.h +3 -3
  513. package/include/Util/Options.h +0 -1
  514. package/include/Util/SparseBitVector.h +6 -14
  515. package/include/WPA/FlowSensitive.h +13 -20
  516. package/include/WPA/WPASolver.h +5 -9
  517. package/lib/DDA/DDAPass.cpp +4 -4
  518. package/lib/Graphs/CFLGraph.cpp +3 -0
  519. package/lib/Graphs/SVFG.cpp +1 -1
  520. package/lib/MSSA/MemSSA.cpp +5 -3
  521. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  522. package/lib/MTA/MTA.cpp +4 -4
  523. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  524. package/lib/MemoryModel/PointsTo.cpp +23 -19
  525. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  526. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  527. package/lib/SVFIR/SVFIR.cpp +1 -1
  528. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  529. package/lib/Util/Options.cpp +0 -6
  530. package/lib/WPA/AndersenSFR.cpp +1 -1
  531. package/lib/WPA/FlowSensitive.cpp +1 -1
  532. package/package.json +1 -1
  533. package/tools/CFL/cfl.cpp +5 -4
  534. package/tools/DDA/dda.cpp +3 -2
  535. package/tools/Example/svf-ex.cpp +3 -2
  536. package/tools/MTA/mta.cpp +6 -4
  537. package/tools/SABER/saber.cpp +7 -5
  538. package/tools/WPA/wpa.cpp +3 -2
@@ -123,14 +123,11 @@ Public Member Functions</h2></td></tr>
123
123
  <tr class="memitem:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a> (<a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *<a class="el" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>, <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a> <a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, bool alias_check=<a class="el" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a>)</td></tr>
124
124
  <tr class="memdesc:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">More...</a><br /></td></tr>
125
125
  <tr class="separator:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
- <tr class="memitem:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a06f211184d3e75f0ca351a4b8092a478">~BVDataPTAImpl</a> ()</td></tr>
127
- <tr class="memdesc:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1BVDataPTAImpl.html#a06f211184d3e75f0ca351a4b8092a478">More...</a><br /></td></tr>
128
- <tr class="separator:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
- <tr class="memitem:a34d87fa1988b78f032735b5fc2803792 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PersistentPointsToCache.html">PersistentPointsToCache</a>&lt; <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a34d87fa1988b78f032735b5fc2803792">getPtCache</a> (void)</td></tr>
130
- <tr class="separator:a34d87fa1988b78f032735b5fc2803792 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
131
- <tr class="memitem:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">destroy</a> ()</td></tr>
132
- <tr class="memdesc:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release memory. <a href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">More...</a><br /></td></tr>
133
- <tr class="separator:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
+ <tr class="memitem:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4a67cd071bc08d2150534e631a0a06ed">~BVDataPTAImpl</a> () override=default</td></tr>
127
+ <tr class="memdesc:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1BVDataPTAImpl.html#a4a67cd071bc08d2150534e631a0a06ed">More...</a><br /></td></tr>
128
+ <tr class="separator:a4a67cd071bc08d2150534e631a0a06ed inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
+ <tr class="memitem:afaeae813ff38e010bbe8fe61befb345c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PersistentPointsToCache.html">PersistentPointsToCache</a>&lt; <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a> ()</td></tr>
130
+ <tr class="separator:afaeae813ff38e010bbe8fe61befb345c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
134
131
  <tr class="memitem:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">clearPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> element)</td></tr>
135
132
  <tr class="memdesc:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove element from the points-to set of id. <a href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">More...</a><br /></td></tr>
136
133
  <tr class="separator:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -149,19 +146,19 @@ Public Member Functions</h2></td></tr>
149
146
  <tr class="memitem:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">remapPointsToSets</a> (void)</td></tr>
150
147
  <tr class="memdesc:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remap all points-to sets to use the current mapping. <a href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">More...</a><br /></td></tr>
151
148
  <tr class="separator:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
- <tr class="memitem:ad3e5b44c21e9d4a38476f39351e56cc9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad3e5b44c21e9d4a38476f39351e56cc9">alias</a> (const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V1, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V2)</td></tr>
153
- <tr class="memdesc:ad3e5b44c21e9d4a38476f39351e56cc9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given Value infos. <a href="classSVF_1_1BVDataPTAImpl.html#ad3e5b44c21e9d4a38476f39351e56cc9">More...</a><br /></td></tr>
154
- <tr class="separator:ad3e5b44c21e9d4a38476f39351e56cc9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
- <tr class="memitem:a949533e5c99698c7f9862aae5de23687 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a949533e5c99698c7f9862aae5de23687">alias</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node1, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node2)</td></tr>
156
- <tr class="memdesc:a949533e5c99698c7f9862aae5de23687 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given PAGNodeID. <a href="classSVF_1_1BVDataPTAImpl.html#a949533e5c99698c7f9862aae5de23687">More...</a><br /></td></tr>
157
- <tr class="separator:a949533e5c99698c7f9862aae5de23687 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
+ <tr class="memitem:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">alias</a> (const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V1, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *V2) override</td></tr>
150
+ <tr class="memdesc:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given Value infos. <a href="classSVF_1_1BVDataPTAImpl.html#a236d3e9c894fd7c34c8d7a77ac11dd48">More...</a><br /></td></tr>
151
+ <tr class="separator:a236d3e9c894fd7c34c8d7a77ac11dd48 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
+ <tr class="memitem:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a63c474d3a2d4d196e167d6969c6ad21f">alias</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node1, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> node2) override</td></tr>
153
+ <tr class="memdesc:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given PAGNodeID. <a href="classSVF_1_1BVDataPTAImpl.html#a63c474d3a2d4d196e167d6969c6ad21f">More...</a><br /></td></tr>
154
+ <tr class="separator:a63c474d3a2d4d196e167d6969c6ad21f inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
155
  <tr class="memitem:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">alias</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts1, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts2)</td></tr>
159
156
  <tr class="memdesc:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given two pts. <a href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">More...</a><br /></td></tr>
160
157
  <tr class="separator:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
- <tr class="memitem:aee289e298e421448caaa604b7eb34fcb inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id)</td></tr>
162
- <tr class="separator:aee289e298e421448caaa604b7eb34fcb inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
- <tr class="memitem:a58113943e4e7144d94d26991dcc8bcc7 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a58113943e4e7144d94d26991dcc8bcc7">getRevPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId)</td></tr>
164
- <tr class="separator:a58113943e4e7144d94d26991dcc8bcc7 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
+ <tr class="memitem:ac9897a09cad8a99169f2da2116807b1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id) override</td></tr>
159
+ <tr class="separator:ac9897a09cad8a99169f2da2116807b1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
160
+ <tr class="memitem:aa30608bc36dcfde45c896d4a15a08ca1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa30608bc36dcfde45c896d4a15a08ca1">getRevPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> nodeId) override</td></tr>
161
+ <tr class="separator:aa30608bc36dcfde45c896d4a15a08ca1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
162
  <tr class="memitem:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;target)</td></tr>
166
163
  <tr class="separator:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
164
  <tr class="memitem:ad5e657b856681a534a8990df35ea08d0 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad5e657b856681a534a8990df35ea08d0">unionPts</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> id, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ptd)</td></tr>
@@ -177,13 +174,13 @@ Public Member Functions</h2></td></tr>
177
174
  <tr class="separator:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
178
175
  <tr class="memitem:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a857cdacfc8cafdeb1431bdfa077ef9b5">readFromModule</a> ()</td></tr>
179
176
  <tr class="separator:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
- <tr class="memitem:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae20bbb7991f585deb2e6d0d8115b1b93">dumpCPts</a> ()</td></tr>
181
- <tr class="memdesc:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">dump and debug, print out conditional pts <a href="classSVF_1_1BVDataPTAImpl.html#ae20bbb7991f585deb2e6d0d8115b1b93">More...</a><br /></td></tr>
182
- <tr class="separator:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
183
- <tr class="memitem:a8d6cea841b6ded0f80ef2b5784e9b752 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a8d6cea841b6ded0f80ef2b5784e9b752">dumpTopLevelPtsTo</a> ()</td></tr>
184
- <tr class="separator:a8d6cea841b6ded0f80ef2b5784e9b752 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
185
- <tr class="memitem:a97705b60d294b87ee075a69f04a35d22 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a97705b60d294b87ee075a69f04a35d22">dumpAllPts</a> ()</td></tr>
186
- <tr class="separator:a97705b60d294b87ee075a69f04a35d22 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
+ <tr class="memitem:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">dumpCPts</a> () override</td></tr>
178
+ <tr class="memdesc:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">dump and debug, print out conditional pts <a href="classSVF_1_1BVDataPTAImpl.html#acd9a15c398be20db43ed9fd910bd1758">More...</a><br /></td></tr>
179
+ <tr class="separator:acd9a15c398be20db43ed9fd910bd1758 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
+ <tr class="memitem:ad34eea2a5ec26e0b2b6a78914879f989 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad34eea2a5ec26e0b2b6a78914879f989">dumpTopLevelPtsTo</a> () override</td></tr>
181
+ <tr class="separator:ad34eea2a5ec26e0b2b6a78914879f989 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
+ <tr class="memitem:a7996a2c07b015e8557398ec10db1acef inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7996a2c07b015e8557398ec10db1acef">dumpAllPts</a> () override</td></tr>
183
+ <tr class="separator:a7996a2c07b015e8557398ec10db1acef inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
187
184
  <tr class="inherit_header pub_methods_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
188
185
  <tr class="memitem:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFG.html">ICFG</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">getICFG</a> () const</td></tr>
189
186
  <tr class="memdesc:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get <a class="el" href="classSVF_1_1ICFG.html">ICFG</a>. <a href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">More...</a><br /></td></tr>
@@ -514,6 +511,9 @@ Additional Inherited Members</h2></td></tr>
514
511
  <tr class="memitem:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a> () const</td></tr>
515
512
  <tr class="memdesc:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get points-to data structure. <a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">More...</a><br /></td></tr>
516
513
  <tr class="separator:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
514
+ <tr class="memitem:a638f58c3bf6efdb3787fafaa4e6f19ca inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">finalize</a> () override</td></tr>
515
+ <tr class="memdesc:a638f58c3bf6efdb3787fafaa4e6f19ca inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation. <a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">More...</a><br /></td></tr>
516
+ <tr class="separator:a638f58c3bf6efdb3787fafaa4e6f19ca inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
517
517
  <tr class="memitem:aa534e475fa34fa322c567bc376a3da70 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">updateCallGraph</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a> &amp;)</td></tr>
518
518
  <tr class="memdesc:aa534e475fa34fa322c567bc376a3da70 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update callgraph. This should be implemented by its subclass. <a href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">More...</a><br /></td></tr>
519
519
  <tr class="separator:aa534e475fa34fa322c567bc376a3da70 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -692,12 +692,12 @@ Additional Inherited Members</h2></td></tr>
692
692
  <p>Build Grammar from text file. </p>
693
693
 
694
694
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00049">49</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
695
- <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Start building grammar</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GrammarBuilder grammarBuilder = GrammarBuilder(<a class="code" href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">Options::GrammarFilename</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a> = grammarBuilder.build();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Get time of build grammar</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">timeOfBuildCFLGrammar</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
695
+ <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Start building grammar</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GrammarBuilder grammarBuilder = GrammarBuilder(<a class="code" href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">Options::GrammarFilename</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a> = grammarBuilder.build();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Get time of build grammar</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">timeOfBuildCFLGrammar</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
696
696
  <div class="ttc" id="classSVF_1_1CFLBase_html_a0d3217f4c3796b58a98add5c92298ad2"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">SVF::CFLBase::timeOfBuildCFLGrammar</a></div><div class="ttdeci">static double timeOfBuildCFLGrammar</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00091">CFLBase.h:91</a></div></div>
697
697
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
698
698
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
699
699
  <div class="ttc" id="classSVF_1_1CFLBase_html_aef3da4ce970597586757cafd2a435c1f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">SVF::CFLBase::grammarBase</a></div><div class="ttdeci">GrammarBase * grammarBase</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00108">CFLBase.h:108</a></div></div>
700
- <div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
700
+ <div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00252">Options.h:252</a></div></div>
701
701
  </div><!-- fragment -->
702
702
  </div>
703
703
  </div>
@@ -731,10 +731,10 @@ Additional Inherited Members</h2></td></tr>
731
731
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00062">62</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
732
732
  <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Start building CFLGraph</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; AliasCFLGraphBuilder cflGraphBuilder = AliasCFLGraphBuilder();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>.empty()) <span class="comment">// built from svfir</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; ConstraintGraph *consCG = <span class="keyword">new</span> ConstraintGraph(<a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a7d566af0280a0c2457947fd426c81c81">Options::PEGTransfer</a>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a> = cflGraphBuilder.buildBiPEGgraph(consCG, <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>(), <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>, <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a> = cflGraphBuilder.buildBigraph(consCG, <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>(), <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">delete</span> consCG;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a> = cflGraphBuilder.buildFromDot(<a class="code" href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">Options::CFLGraph</a>, <a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Check CFL Graph and Grammar are accordance with grammar</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; CFLGramGraphChecker cflChecker = CFLGramGraphChecker();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; cflChecker.check(<a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>, &amp;cflGraphBuilder, <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Get time of build graph</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">timeOfBuildCFLGraph</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLBase_html_a9e6cbab31612da4a1f8f660d1fabc4c0"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">SVF::CFLBase::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00106">CFLBase.h:106</a></div></div>
733
733
  <div class="ttc" id="classSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00107">CFLBase.h:107</a></div></div>
734
- <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
735
- <div class="ttc" id="classSVF_1_1Options_html_a7d566af0280a0c2457947fd426c81c81"><div class="ttname"><a href="classSVF_1_1Options.html#a7d566af0280a0c2457947fd426c81c81">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00257">Options.h:257</a></div></div>
734
+ <div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
735
+ <div class="ttc" id="classSVF_1_1Options_html_a7d566af0280a0c2457947fd426c81c81"><div class="ttname"><a href="classSVF_1_1Options.html#a7d566af0280a0c2457947fd426c81c81">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00256">Options.h:256</a></div></div>
736
736
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a8921a7d7a006e31f13d88b8c808c931b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">SVF::GrammarBase::getStartKind</a></div><div class="ttdeci">Kind getStartKind()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00205">CFLGrammar.h:205</a></div></div>
737
- <div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
737
+ <div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
738
738
  <div class="ttc" id="classSVF_1_1CFLBase_html_a9453bf479ccd00bacb3b371fa6383a9c"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">SVF::CFLBase::timeOfBuildCFLGraph</a></div><div class="ttdeci">static double timeOfBuildCFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00094">CFLBase.h:94</a></div></div>
739
739
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
740
740
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
@@ -802,12 +802,12 @@ Additional Inherited Members</h2></td></tr>
802
802
 
803
803
  <p>Finalize extra stat info passing. </p>
804
804
 
805
- <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl</a>.</p>
805
+ <p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis</a>.</p>
806
806
 
807
807
  <p>Reimplemented in <a class="el" href="classSVF_1_1CFLAlias.html#a1b7e49b3f42d625f1f25258044f8b885">SVF::CFLAlias</a>, and <a class="el" href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">SVF::CFLVF</a>.</p>
808
808
 
809
809
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00114">114</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
810
- <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">numOfChecks</a> = <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">numOfChecks</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a57ff2bf45ede7a730a8adaba8e61179d"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00093">PointerAnalysisImpl.cpp:93</a></div></div>
810
+ <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">numOfChecks</a> = <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">numOfChecks</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00093">PointerAnalysisImpl.cpp:93</a></div></div>
811
811
  <div class="ttc" id="classSVF_1_1CFLBase_html_a49b12231195521d2b53b045962f0a3f6"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">SVF::CFLBase::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00101">CFLBase.h:101</a></div></div>
812
812
  <div class="ttc" id="classSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00050">CFLSolver.h:50</a></div></div>
813
813
  <div class="ttc" id="classSVF_1_1CFLBase_html_a34c3a3eec2d7d34ef78b5031d8844b17"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">SVF::CFLBase::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
@@ -862,7 +862,7 @@ Additional Inherited Members</h2></td></tr>
862
862
  <p>Normalize grammar. </p>
863
863
 
864
864
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00090">90</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
865
- <div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Start normalize grammar</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; CFGNormalizer normalizer = CFGNormalizer();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">grammar</a> = normalizer.normalize(<a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Get time of normalize grammar</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">timeOfNormalizeGrammar</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
865
+ <div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Start normalize grammar</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; CFGNormalizer normalizer = CFGNormalizer();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">grammar</a> = normalizer.normalize(<a class="code" href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">grammarBase</a>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Get time of normalize grammar</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">timeOfNormalizeGrammar</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
866
866
  <div class="ttc" id="classSVF_1_1CFLBase_html_af7b0e90b8f8998ab6cf4e05155c7a503"><div class="ttname"><a href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">SVF::CFLBase::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00109">CFLBase.h:109</a></div></div>
867
867
  <div class="ttc" id="classSVF_1_1CFLBase_html_ad4d65dd4c3e173d014199ac6b08a5261"><div class="ttname"><a href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">SVF::CFLBase::timeOfNormalizeGrammar</a></div><div class="ttdeci">static double timeOfNormalizeGrammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00092">CFLBase.h:92</a></div></div>
868
868
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
@@ -899,7 +899,7 @@ Additional Inherited Members</h2></td></tr>
899
899
  <p>Reimplemented in <a class="el" href="classSVF_1_1CFLAlias.html#a5b7d65e7e74d596d61a1aad75e53cf27">SVF::CFLAlias</a>.</p>
900
900
 
901
901
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00103">103</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
902
- <div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Start solving</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">solve</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">timeOfSolving</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00446">SVFType.h:446</a></div></div>
902
+ <div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Start solving</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">solve</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">timeOfSolving</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="SVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00444">SVFType.h:444</a></div></div>
903
903
  <div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
904
904
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
905
905
  <div class="ttc" id="classSVF_1_1CFLBase_html_a34c3a3eec2d7d34ef78b5031d8844b17"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">SVF::CFLBase::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
@@ -341,7 +341,7 @@ Additional Inherited Members</h2></td></tr>
341
341
  </div><div class="memdoc">
342
342
 
343
343
  <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00047">47</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
344
- <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>(src,dst,label);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.insert(edge).second)</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; src-&gt;<a class="code" href="classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d">addOutgoingEdge</a>(edge);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; dst-&gt;<a class="code" href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5">addIngoingEdge</a>(edge);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLNode_html_a0d01ba68e875806fa24d7c1369924da5"><div class="ttname"><a href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5">SVF::CFLNode::addIngoingEdge</a></div><div class="ttdeci">bool addIngoingEdge(CFLEdge *inEdge)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00113">CFLGraph.h:113</a></div></div>
344
+ <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>(src,dst,label);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.insert(edge).second)</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; src-&gt;<a class="code" href="classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d">addOutgoingEdge</a>(edge);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; dst-&gt;<a class="code" href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5">addIngoingEdge</a>(edge);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLNode_html_a0d01ba68e875806fa24d7c1369924da5"><div class="ttname"><a href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5">SVF::CFLNode::addIngoingEdge</a></div><div class="ttdeci">bool addIngoingEdge(CFLEdge *inEdge)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00113">CFLGraph.h:113</a></div></div>
345
345
  <div class="ttc" id="classSVF_1_1CFLEdge_html"><div class="ttname"><a href="classSVF_1_1CFLEdge.html">SVF::CFLEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00047">CFLGraph.h:47</a></div></div>
346
346
  <div class="ttc" id="classSVF_1_1CFLNode_html_a7bea51b304d0aa2f3a9669252ceda46d"><div class="ttname"><a href="classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d">SVF::CFLNode::addOutgoingEdge</a></div><div class="ttdeci">bool addOutgoingEdge(CFLEdge *OutEdge)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00127">CFLGraph.h:127</a></div></div>
347
347
  <div class="ttc" id="classSVF_1_1CFLGraph_html_afb41039ad53899fa64fedcef8b7aa7fe"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">SVF::CFLGraph::cflEdgeSet</a></div><div class="ttdeci">CFLEdgeSet cflEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00187">CFLGraph.h:187</a></div></div>
@@ -403,8 +403,8 @@ Additional Inherited Members</h2></td></tr>
403
403
  </table>
404
404
  </div><div class="memdoc">
405
405
 
406
- <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00070">70</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
407
- <div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>(), filename, <span class="keyword">this</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</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>
406
+ <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00073">73</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
407
+ <div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>(), filename, <span class="keyword">this</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</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>
408
408
  <div class="ttc" id="classSVF_1_1GraphPrinter_html_a014217fb0d05c8f2a2f1a6c5b19d3e10"><div class="ttname"><a href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">SVF::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
409
409
  </div><!-- fragment -->
410
410
  </div>
@@ -497,8 +497,8 @@ Additional Inherited Members</h2></td></tr>
497
497
  </table>
498
498
  </div><div class="memdoc">
499
499
 
500
- <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00060">60</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
501
- <div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a> edge(src,dst,label);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.find(&amp;edge);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(it !=<a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.end())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLEdge_html"><div class="ttname"><a href="classSVF_1_1CFLEdge.html">SVF::CFLEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00047">CFLGraph.h:47</a></div></div>
500
+ <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00063">63</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
501
+ <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a> edge(src,dst,label);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.find(&amp;edge);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(it !=<a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>.end())</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLEdge_html"><div class="ttname"><a href="classSVF_1_1CFLEdge.html">SVF::CFLEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00047">CFLGraph.h:47</a></div></div>
502
502
  <div class="ttc" id="classSVF_1_1CFLGraph_html_afb41039ad53899fa64fedcef8b7aa7fe"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">SVF::CFLGraph::cflEdgeSet</a></div><div class="ttdeci">CFLEdgeSet cflEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00187">CFLGraph.h:187</a></div></div>
503
503
  </div><!-- fragment -->
504
504
  </div>
@@ -518,8 +518,8 @@ Additional Inherited Members</h2></td></tr>
518
518
  </table>
519
519
  </div><div class="memdoc">
520
520
 
521
- <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00075">75</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
522
- <div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a>(<span class="keyword">this</span>, <span class="stringliteral">&quot;CFL Graph&quot;</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a4582a7d33a5631a5a38973f50035327e"><div class="ttname"><a href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a></div><div class="ttdeci">void ViewGraph(const GraphType &amp;G, const std::string &amp;name, bool ShortNames=false, GraphProgram::Name Program=GraphProgram::DOT)</div><div class="ttdef"><b>Definition:</b> <a href="GraphWriter_8h_source.html#l00371">GraphWriter.h:371</a></div></div>
521
+ <p class="definition">Definition at line <a class="el" href="CFLGraph_8cpp_source.html#l00078">78</a> of file <a class="el" href="CFLGraph_8cpp_source.html">CFLGraph.cpp</a>.</p>
522
+ <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a>(<span class="keyword">this</span>, <span class="stringliteral">&quot;CFL Graph&quot;</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a4582a7d33a5631a5a38973f50035327e"><div class="ttname"><a href="namespaceSVF.html#a4582a7d33a5631a5a38973f50035327e">SVF::ViewGraph</a></div><div class="ttdeci">void ViewGraph(const GraphType &amp;G, const std::string &amp;name, bool ShortNames=false, GraphProgram::Name Program=GraphProgram::DOT)</div><div class="ttdef"><b>Definition:</b> <a href="GraphWriter_8h_source.html#l00371">GraphWriter.h:371</a></div></div>
523
523
  </div><!-- fragment -->
524
524
  </div>
525
525
  </div>
@@ -373,7 +373,7 @@ template&lt;class N , class E &gt; </div>
373
373
  <p>Build graph from Dot. </p>
374
374
 
375
375
  <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00059">59</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
376
- <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(grammar-&gt;getStartKind());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getTerminals())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getNonterminals())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;Building CFL Graph from dot file: &quot;</span> &lt;&lt; fileName &lt;&lt; <span class="stringliteral">&quot;..\n&quot;</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::ifstream inputFile(fileName);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::regex reg(<span class="stringliteral">&quot;Node(\\w+)\\s*-&gt;\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::cout &lt;&lt; std::boolalpha;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.size();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">while</span> (getline(inputFile, lineString))</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; lineNum += 1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::smatch matches;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; CFLNode *src, *dst;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (cflGraph-&gt;hasGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; src = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; cflGraph-&gt;addCFLNode(src-&gt;getId(), src);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; src = cflGraph-&gt;getGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (cflGraph-&gt;hasGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; dst = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; cflGraph-&gt;addCFLNode(dst-&gt;getId(), dst);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; dst = cflGraph-&gt;getGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (externMap == <span class="keyword">false</span>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">Options::FlexSymMap</a> == <span class="keyword">true</span>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">&quot;In line &quot;</span> + std::to_string(lineNum) + <span class="stringliteral">&quot; sym can not find in grammar, please correct the input dot or set --flexsymmap.&quot;</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(msg);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::cout &lt;&lt; msg;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; abort();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; inputFile.close();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_a79dff5235e82e1313fa4b053f866f357"><div class="ttname"><a href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00256">Options.h:256</a></div></div>
376
+ <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(grammar-&gt;getStartKind());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getTerminals())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getNonterminals())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;Building CFL Graph from dot file: &quot;</span> &lt;&lt; fileName &lt;&lt; <span class="stringliteral">&quot;..\n&quot;</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::ifstream inputFile(fileName);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::regex reg(<span class="stringliteral">&quot;Node(\\w+)\\s*-&gt;\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::cout &lt;&lt; std::boolalpha;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.size();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">while</span> (getline(inputFile, lineString))</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; lineNum += 1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::smatch matches;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; CFLNode *src, *dst;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (cflGraph-&gt;hasGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; src = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; cflGraph-&gt;addCFLNode(src-&gt;getId(), src);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; src = cflGraph-&gt;getGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (cflGraph-&gt;hasGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; dst = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; cflGraph-&gt;addCFLNode(dst-&gt;getId(), dst);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; dst = cflGraph-&gt;getGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span> (externMap == <span class="keyword">false</span>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">Options::FlexSymMap</a> == <span class="keyword">true</span>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; cflGraph-&gt;addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">&quot;In line &quot;</span> + std::to_string(lineNum) + <span class="stringliteral">&quot; sym can not find in grammar, please correct the input dot or set --flexsymmap.&quot;</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(msg);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::cout &lt;&lt; msg;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; abort();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; inputFile.close();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_a79dff5235e82e1313fa4b053f866f357"><div class="ttname"><a href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00255">Options.h:255</a></div></div>
377
377
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
378
378
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00050">CFLGraphBuilder.h:50</a></div></div>
379
379
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00054">CFLGraphBuilder.h:54</a></div></div>