svf-tools 1.0.628 → 1.0.630

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 (572) hide show
  1. package/SVF-doxygen/html/html/AddressValue_8h_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +3 -3
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -21
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  9. package/SVF-doxygen/html/html/Annotator_8h.html +2 -1
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +19 -18
  11. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
  14. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +11 -10
  15. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +3 -3
  19. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/CFLVF_8cpp.html +1 -0
  24. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +6 -5
  25. package/SVF-doxygen/html/html/CFLVF_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +23 -23
  28. package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
  29. package/SVF-doxygen/html/html/CHG_8cpp_source.html +22 -21
  30. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  34. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +11 -11
  38. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  39. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +8 -8
  40. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
  41. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/CppUtil_8cpp.html +247 -0
  44. package/SVF-doxygen/html/html/CppUtil_8cpp_source.html +98 -0
  45. package/SVF-doxygen/html/html/CppUtil_8h.html +122 -0
  46. package/SVF-doxygen/html/html/CppUtil_8h_source.html +94 -0
  47. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
  48. package/SVF-doxygen/html/html/DCHG_8cpp.html +1 -1
  49. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +40 -40
  50. package/SVF-doxygen/html/html/DCHG_8h.html +2 -1
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +75 -74
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +10 -10
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  60. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  61. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
  63. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +9 -8
  64. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +10 -9
  65. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  66. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  67. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  70. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
  72. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
  73. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  74. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +6 -6
  75. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  77. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
  79. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  82. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +8 -8
  84. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/IntervalExeState_8cpp_source.html +2 -2
  86. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +5 -5
  88. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +4 -4
  89. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h.html +1 -0
  90. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -2
  91. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +41 -41
  92. package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -1
  93. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  94. package/SVF-doxygen/html/html/LLVMUtil_8cpp.html +78 -1
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +71 -38
  96. package/SVF-doxygen/html/html/LLVMUtil_8h.html +41 -7
  97. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +75 -50
  98. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -7
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +4 -4
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +11 -11
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +5 -5
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
  104. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  105. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  108. package/SVF-doxygen/html/html/MTAAnnotator_8h.html +3 -1
  109. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +29 -27
  110. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  111. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
  112. package/SVF-doxygen/html/html/MTAStat_8h.html +1 -0
  113. package/SVF-doxygen/html/html/MTAStat_8h_source.html +9 -8
  114. package/SVF-doxygen/html/html/MTA_8cpp_source.html +13 -13
  115. package/SVF-doxygen/html/html/MTA_8h.html +1 -0
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +12 -11
  117. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  119. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
  120. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
  121. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  122. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +4 -4
  123. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp.html +1 -0
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +23 -23
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +17 -17
  126. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +4 -4
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  128. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +2 -2
  129. package/SVF-doxygen/html/html/PCG_8cpp_source.html +5 -5
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +5 -5
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -4
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/PersistentPointsToCache_8h.html +1 -0
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +43 -43
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +12 -12
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -0
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +24 -23
  138. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +22 -22
  139. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +2 -1
  140. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +34 -33
  141. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +25 -25
  142. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -2
  143. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  144. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  145. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
  146. package/SVF-doxygen/html/html/RelExeState_8cpp_source.html +2 -2
  147. package/SVF-doxygen/html/html/RelExeState_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +1 -1
  149. package/SVF-doxygen/html/html/RelationSolver_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
  151. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  152. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  153. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +2 -2
  154. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  155. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  156. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  157. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
  159. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +13 -13
  160. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  161. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  162. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +1 -1
  163. package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +1 -1
  164. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -1
  165. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +35 -35
  166. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -0
  167. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +54 -53
  168. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -5
  169. package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
  170. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +1 -1
  171. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  172. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  173. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +4 -4
  174. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  175. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  176. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
  177. package/SVF-doxygen/html/html/SVFType_8h.html +65 -35
  178. package/SVF-doxygen/html/html/SVFType_8h_source.html +114 -114
  179. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  180. package/SVF-doxygen/html/html/SVFUtil_8h.html +2 -3
  181. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +36 -36
  182. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +4 -4
  183. package/SVF-doxygen/html/html/SVFValue_8h_source.html +11 -11
  184. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  185. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +4 -4
  186. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  187. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp.html +2 -0
  188. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +37 -36
  189. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +27 -27
  190. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  191. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  192. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp.html +1 -1
  194. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +36 -36
  195. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  196. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +17 -17
  197. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
  198. package/SVF-doxygen/html/html/TCT_8cpp_source.html +7 -7
  199. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  200. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  201. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
  202. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -0
  204. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +11 -10
  205. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  206. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  207. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  208. package/SVF-doxygen/html/html/VFG_8cpp_source.html +5 -5
  209. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  210. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  211. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  212. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
  215. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  216. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  217. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  218. package/SVF-doxygen/html/html/WTO_8h_source.html +2 -2
  219. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  220. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  221. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  222. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  223. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +11 -11
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  235. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +39 -39
  236. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +49 -49
  237. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +15 -15
  243. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +8 -8
  244. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +8 -8
  247. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +63 -63
  248. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +22 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +9 -9
  260. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  261. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +23 -23
  263. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
  268. package/SVF-doxygen/html/html/classSVF_1_1CxtStmtDPItem.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
  272. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +14 -14
  273. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +124 -124
  274. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +66 -66
  275. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +5 -5
  276. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
  278. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  279. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +8 -8
  281. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +9 -9
  284. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +32 -32
  289. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +6 -6
  290. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +15 -15
  291. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  294. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +10 -10
  300. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  301. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  304. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +5 -5
  307. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
  312. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +70 -70
  314. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +11 -11
  315. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +1 -1
  316. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +8 -8
  318. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +47 -47
  319. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +6 -6
  320. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +35 -35
  321. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +23 -23
  322. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +77 -77
  328. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +13 -13
  329. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -11
  330. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +19 -19
  331. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +29 -29
  333. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  334. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  335. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +15 -15
  338. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +43 -43
  339. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +5 -5
  341. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  343. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +7 -7
  344. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  345. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +4 -4
  347. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  348. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  350. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +9 -9
  351. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +10 -10
  352. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +19 -19
  354. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +141 -141
  355. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +78 -78
  358. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +5 -5
  359. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
  361. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +6 -6
  362. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +7 -7
  363. package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  365. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +1 -1
  366. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -7
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -10
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +6 -6
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +6 -6
  375. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +5 -5
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +30 -30
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +352 -352
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -6
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +4 -5
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -10
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +5 -5
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -6
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +40 -42
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
  388. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +95 -95
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  393. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +14 -14
  394. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +44 -44
  395. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  398. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +23 -23
  400. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  401. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
  402. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  403. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +6 -6
  405. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  406. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +18 -18
  407. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  408. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  409. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +5 -5
  410. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +20 -20
  412. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
  413. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  414. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  415. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  416. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  417. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1Wto.html +1 -1
  419. package/SVF-doxygen/html/html/classSVF_1_1WtoCycle.html +1 -1
  420. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  424. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  425. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  426. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  427. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  428. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  429. package/SVF-doxygen/html/html/dir_967d846b666a902c6ca9bc5c37976e49.html +0 -2
  430. package/SVF-doxygen/html/html/dir_a07347b69f031d2f872c9d4a9c274c8c.html +0 -2
  431. package/SVF-doxygen/html/html/files.html +41 -41
  432. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  433. package/SVF-doxygen/html/html/functions_g.html +1 -1
  434. package/SVF-doxygen/html/html/functions_i.html +3 -3
  435. package/SVF-doxygen/html/html/functions_n.html +4 -4
  436. package/SVF-doxygen/html/html/functions_o.html +15 -13
  437. package/SVF-doxygen/html/html/functions_s.html +7 -7
  438. package/SVF-doxygen/html/html/functions_t.html +9 -9
  439. package/SVF-doxygen/html/html/functions_v.html +3 -3
  440. package/SVF-doxygen/html/html/globals_c.html +1 -1
  441. package/SVF-doxygen/html/html/globals_d.html +3 -0
  442. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  443. package/SVF-doxygen/html/html/globals_func.html +3 -3
  444. package/SVF-doxygen/html/html/globals_g.html +1 -1
  445. package/SVF-doxygen/html/html/globals_h.html +1 -1
  446. package/SVF-doxygen/html/html/globals_i.html +1 -1
  447. package/SVF-doxygen/html/html/globals_n.html +1 -1
  448. package/SVF-doxygen/html/html/globals_s.html +1 -1
  449. package/SVF-doxygen/html/html/globals_v.html +4 -4
  450. package/SVF-doxygen/html/html/globals_vars.html +7 -7
  451. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
  452. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  453. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  454. package/SVF-doxygen/html/html/mta_8cpp.html +4 -4
  455. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  456. package/SVF-doxygen/html/html/namespaceSVF.html +53 -53
  457. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +620 -150
  458. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +95 -125
  459. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +27 -440
  460. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil_1_1ctir.html +4 -4
  461. package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
  462. package/SVF-doxygen/html/html/namespacemembers_func_d.html +1 -1
  463. package/SVF-doxygen/html/html/namespacemembers_func_g.html +10 -10
  464. package/SVF-doxygen/html/html/namespacemembers_func_i.html +9 -8
  465. package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
  466. package/SVF-doxygen/html/html/namespacemembers_g.html +10 -10
  467. package/SVF-doxygen/html/html/namespacemembers_i.html +9 -8
  468. package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
  469. package/SVF-doxygen/html/html/namespacemembers_type_n.html +1 -1
  470. package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
  471. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  472. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  473. package/SVF-doxygen/html/html/search/all_10.js +1 -1
  474. package/SVF-doxygen/html/html/search/all_12.js +6 -6
  475. package/SVF-doxygen/html/html/search/all_13.js +5 -5
  476. package/SVF-doxygen/html/html/search/all_15.js +7 -7
  477. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  478. package/SVF-doxygen/html/html/search/all_3.js +3 -3
  479. package/SVF-doxygen/html/html/search/all_4.js +2 -1
  480. package/SVF-doxygen/html/html/search/all_7.js +12 -12
  481. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  482. package/SVF-doxygen/html/html/search/all_9.js +10 -10
  483. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  484. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  486. package/SVF-doxygen/html/html/search/defines_3.js +1 -0
  487. package/SVF-doxygen/html/html/search/files_2.js +2 -2
  488. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  489. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_6.js +12 -12
  491. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  492. package/SVF-doxygen/html/html/search/functions_8.js +10 -10
  493. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  494. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  495. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  496. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  497. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  498. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
  500. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +1 -1
  501. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +26 -16
  502. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +1 -1
  503. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +25 -15
  504. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +1 -1
  506. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +29 -19
  507. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
  508. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
  510. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  512. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  513. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  514. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +1 -1
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
  517. package/SVF-doxygen/html/html/structSVF_1_1cppUtil_1_1DemangledName.html +6 -6
  518. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  519. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  521. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  522. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
  524. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  525. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  527. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  528. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
  529. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  530. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  531. package/include/MTA/MTA.h +1 -0
  532. package/include/MTA/MTAStat.h +1 -0
  533. package/include/MemoryModel/PersistentPointsToCache.h +1 -0
  534. package/include/SVF-LLVM/DCHG.h +2 -1
  535. package/include/SVF-LLVM/LLVMLoopAnalysis.h +1 -0
  536. package/include/SVF-LLVM/LLVMModule.h +2 -2
  537. package/include/SVF-LLVM/LLVMUtil.h +135 -79
  538. package/include/SVF-LLVM/SVFIRBuilder.h +1 -0
  539. package/include/SVFIR/PAGBuilderFromFile.h +3 -3
  540. package/include/SVFIR/SVFIR.h +3 -3
  541. package/include/SVFIR/SVFModule.h +3 -3
  542. package/include/SVFIR/SVFStatements.h +3 -3
  543. package/include/SVFIR/SVFType.h +120 -103
  544. package/include/SVFIR/SVFValue.h +3 -3
  545. package/include/SVFIR/SVFVariables.h +3 -3
  546. package/include/SVFIR/SymbolTableInfo.h +3 -3
  547. package/include/Util/Annotator.h +8 -17
  548. package/include/{SVF-LLVM/CPPUtil.h → Util/CppUtil.h} +5 -54
  549. package/include/Util/SVFUtil.h +3 -9
  550. package/index.html +9 -5
  551. package/lib/CFL/CFLAlias.cpp +1 -1
  552. package/lib/CFL/CFLVF.cpp +1 -0
  553. package/lib/Graphs/CHG.cpp +1 -0
  554. package/lib/Graphs/ConsG.cpp +0 -5
  555. package/lib/Graphs/IRGraph.cpp +0 -5
  556. package/lib/Graphs/SVFG.cpp +0 -5
  557. package/lib/MemoryModel/PointerAnalysis.cpp +1 -0
  558. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -0
  559. package/lib/SABER/SaberCondAllocator.cpp +2 -0
  560. package/lib/SVF-LLVM/CHGBuilder.cpp +10 -10
  561. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  562. package/lib/SVF-LLVM/LLVMModule.cpp +4 -4
  563. package/lib/SVF-LLVM/LLVMUtil.cpp +362 -4
  564. package/lib/SVF-LLVM/SVFIRBuilder.cpp +2 -2
  565. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +1 -1
  566. package/lib/Util/CppUtil.cpp +214 -0
  567. package/lib/Util/ExtAPI.cpp +1 -1
  568. package/lib/Util/NodeIDAllocator.cpp +3 -2
  569. package/lib/WPA/TypeAnalysis.cpp +1 -0
  570. package/package.json +1 -1
  571. package/tools/MTA/MTAAnnotator.h +2 -0
  572. package/lib/SVF-LLVM/CPPUtil.cpp +0 -572
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">CFLBase.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="CFLBase_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===----- CFLBase.cpp -- CFL Analysis Client Base--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CFLBase.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 13, 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLBase_8h.html">CFL/CFLBase.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span>CFLStat;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">CFLBase::timeOfBuildCFLGrammar</a> = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">CFLBase::timeOfNormalizeGrammar</a> = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">CFLBase::timeOfBuildCFLGraph</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">CFLBase::timeOfSolving</a> = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#abc5502f15583f0546bbc2a678d2f2ed9">CFLBase::numOfTerminalEdges</a> = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#ac3b408acb295e2c319e3542539e6df47">CFLBase::numOfTemporaryNonterminalEdges</a> = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a4c03b83cb2a3c0c166d96550d6771a1b">CFLBase::numOfNonterminalEdges</a> = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">CFLBase::numOfStartEdges</a> = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#aa807cf1b8605a463d6d68d5096f3e0e8">CFLBase::numOfIteration</a> = 1;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">CFLBase::numOfChecks</a> = 1;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09"> 49</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09">CFLBase::buildCFLGrammar</a>()</div><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; <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a> grammarBuilder = <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a>(<a class="code" href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">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.<a class="code" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">build</a>();</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="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93"> 62</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93">CFLBase::buildCFLGraph</a>()</div><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; <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a> cflGraphBuilder = <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a>();</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#a81dbd12b5141c4a2758d6f2d3321f1ac">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; <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *consCG = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>(<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#a4854dd8b167e468e698606254b31bf26">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.<a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">buildBiPEGgraph</a>(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.<a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a>(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.<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(<a class="code" href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">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; <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a> cflChecker = <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(<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="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9"> 90</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9">CFLBase::normalizeCFLGrammar</a>()</div><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; <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a> normalizer = <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a>();</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.<a class="code" href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">normalize</a>(<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="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e"> 103</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e">CFLBase::solve</a>()</div><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="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d"> 114</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d">CFLBase::finalize</a>()</div><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="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a2aac58e19676290042874c262f1edd4d"> 121</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a2aac58e19676290042874c262f1edd4d">CFLBase::analyze</a>()</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">initialize</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e">solve</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d">finalize</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</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"><a class="line" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b"> 130</a></span>&#160;<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">CFLBase::getCFLGraph</a>()</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>;</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;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9"> 135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9">CFLBase::countSumEdges</a>()</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">numOfStartEdges</a> = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">getCFLGraph</a>()-&gt;getCFLEdges().begin(); it != <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">getCFLGraph</a>()-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">getCFLEdges</a>().end(); it++ )</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">if</span> ((*it)-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">numOfStartEdges</a>++;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</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;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// End namespace SVF</span></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#l00092">PointerAnalysisImpl.cpp:92</a></div></div>
69
+ <a href="CFLBase_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===----- CFLBase.cpp -- CFL Analysis Client Base--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CFLBase.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 13, 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Pei Xu</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLBase_8h.html">CFL/CFLBase.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span>CFLStat;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">CFLBase::timeOfBuildCFLGrammar</a> = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261">CFLBase::timeOfNormalizeGrammar</a> = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a9453bf479ccd00bacb3b371fa6383a9c">CFLBase::timeOfBuildCFLGraph</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">CFLBase::timeOfSolving</a> = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#abc5502f15583f0546bbc2a678d2f2ed9">CFLBase::numOfTerminalEdges</a> = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#ac3b408acb295e2c319e3542539e6df47">CFLBase::numOfTemporaryNonterminalEdges</a> = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a4c03b83cb2a3c0c166d96550d6771a1b">CFLBase::numOfNonterminalEdges</a> = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">CFLBase::numOfStartEdges</a> = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#aa807cf1b8605a463d6d68d5096f3e0e8">CFLBase::numOfIteration</a> = 1;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">CFLBase::numOfChecks</a> = 1;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09"> 49</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09">CFLBase::buildCFLGrammar</a>()</div><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; <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a> grammarBuilder = <a class="code" href="classSVF_1_1GrammarBuilder.html">GrammarBuilder</a>(<a class="code" href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">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.<a class="code" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">build</a>();</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="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93"> 62</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93">CFLBase::buildCFLGraph</a>()</div><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; <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a> cflGraphBuilder = <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html">AliasCFLGraphBuilder</a>();</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#a81dbd12b5141c4a2758d6f2d3321f1ac">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; <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *consCG = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>(<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#a4854dd8b167e468e698606254b31bf26">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.<a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">buildBiPEGgraph</a>(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.<a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a>(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.<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(<a class="code" href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">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; <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a> cflChecker = <a class="code" href="classSVF_1_1CFLGramGraphChecker.html">CFLGramGraphChecker</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; cflChecker.<a class="code" href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">check</a>(<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="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9"> 90</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9">CFLBase::normalizeCFLGrammar</a>()</div><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; <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a> normalizer = <a class="code" href="classSVF_1_1CFGNormalizer.html">CFGNormalizer</a>();</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.<a class="code" href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">normalize</a>(<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="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e"> 103</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e">CFLBase::solve</a>()</div><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="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d"> 114</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d">CFLBase::finalize</a>()</div><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="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a2aac58e19676290042874c262f1edd4d"> 121</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a2aac58e19676290042874c262f1edd4d">CFLBase::analyze</a>()</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">initialize</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a2d1f2e2c7f8cbe07e0dda759a7424e6e">solve</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d">finalize</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</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"><a class="line" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b"> 130</a></span>&#160;<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">CFLBase::getCFLGraph</a>()</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>;</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;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9"> 135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLBase.html#a824da17d03599090d4e3b4c50aeccff9">CFLBase::countSumEdges</a>()</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">numOfStartEdges</a> = 0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">getCFLGraph</a>()-&gt;getCFLEdges().begin(); it != <a class="code" href="classSVF_1_1CFLBase.html#a22ab9bbaee16e06d04817db8c394cc0b">getCFLGraph</a>()-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">getCFLEdges</a>().end(); it++ )</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">if</span> ((*it)-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a25a593cb2a855a93d3593efba382a58c">numOfStartEdges</a>++;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</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;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;} <span class="comment">// End namespace SVF</span></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>
70
70
  <div class="ttc" id="classSVF_1_1CFLBase_html_a7ee2fdf1c0cdf019c863870dc51c0b5d"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a7ee2fdf1c0cdf019c863870dc51c0b5d">SVF::CFLBase::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize extra stat info passing. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00114">CFLBase.cpp:114</a></div></div>
71
71
  <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>
72
72
  <div class="ttc" id="classSVF_1_1CFLGramGraphChecker_html_ada643d980c2590711660eb5f2a4e5f93"><div class="ttname"><a href="classSVF_1_1CFLGramGraphChecker.html#ada643d980c2590711660eb5f2a4e5f93">SVF::CFLGramGraphChecker::check</a></div><div class="ttdeci">void check(GrammarBase *grammar, CFLGraphBuilder *graphBuilder, CFLGraph *graph)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGramGraphChecker_8h_source.html#l00040">CFLGramGraphChecker.h:40</a></div></div>
@@ -82,7 +82,7 @@ $(function() {
82
82
  <div class="ttc" id="classSVF_1_1Options_html_a4854dd8b167e468e698606254b31bf26"><div class="ttname"><a href="classSVF_1_1Options.html#a4854dd8b167e468e698606254b31bf26">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const Option&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00256">Options.h:256</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1GrammarBuilder_html"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html">SVF::GrammarBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8h_source.html#l00070">GrammarBuilder.h:70</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&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>
85
- <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>
85
+ <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#l00463">SVFType.h:463</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1CFLBase_html_aa807cf1b8605a463d6d68d5096f3e0e8"><div class="ttname"><a href="classSVF_1_1CFLBase.html#aa807cf1b8605a463d6d68d5096f3e0e8">SVF::CFLBase::numOfIteration</a></div><div class="ttdeci">static double numOfIteration</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00100">CFLBase.h:100</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1CFGNormalizer_html_ae8e2b22944e9d3d2ec14cd6aaa8b93c9"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">SVF::CFGNormalizer::normalize</a></div><div class="ttdeci">CFLGrammar * normalize(GrammarBase *generalGrammar)</div><div class="ttdoc">Binary Normal Form(BNF) normalization with variable attribute expanded. </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8cpp_source.html#l00042">CFGNormalizer.cpp:42</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1CFLBase_html_a4c03b83cb2a3c0c166d96550d6771a1b"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a4c03b83cb2a3c0c166d96550d6771a1b">SVF::CFLBase::numOfNonterminalEdges</a></div><div class="ttdeci">static double numOfNonterminalEdges</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00097">CFLBase.h:97</a></div></div>
@@ -113,7 +113,7 @@ $(function() {
113
113
  <div class="ttc" id="classSVF_1_1CFLSolver_html_a2ee3436c26ebdb2aaf790c25b1d8b5a6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">SVF::CFLSolver::solve</a></div><div class="ttdeci">void solve()</div><div class="ttdoc">Start solving. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8cpp_source.html#l00119">CFLSolver.cpp:119</a></div></div>
114
114
  <div class="ttc" id="classSVF_1_1CFLBase_html_a0daabb58bd7d5be40379ccc670c37a93"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93">SVF::CFLBase::buildCFLGraph</a></div><div class="ttdeci">virtual void buildCFLGraph()</div><div class="ttdoc">Build CFLGraph based on Option. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00062">CFLBase.cpp:62</a></div></div>
115
115
  <div class="ttc" id="classSVF_1_1AliasCFLGraphBuilder_html_ac74b55198d73acebb9843fd13c1fd880"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">SVF::AliasCFLGraphBuilder::buildBiPEGgraph</a></div><div class="ttdeci">CFLGraph * buildBiPEGgraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR *pag)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00225">CFLGraphBuilder.cpp:225</a></div></div>
116
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00105">PointerAnalysis.cpp:105</a></div></div>
116
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00106">PointerAnalysis.cpp:106</a></div></div>
117
117
  <div class="ttc" id="classSVF_1_1GrammarBuilder_html_a23d03b2cd348d85bda1ee582dded6505"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder::build</a></div><div class="ttdeci">GrammarBase * build() const</div><div class="ttdoc">Build grammarBase from fileName. </div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8cpp_source.html#l00110">GrammarBuilder.cpp:110</a></div></div>
118
118
  </div><!-- fragment --></div><!-- contents -->
119
119
  <!-- start footer part -->
@@ -79,7 +79,7 @@ $(function() {
79
79
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a7909a5f90ed1678a178f18259f0b66a9"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7909a5f90ed1678a178f18259f0b66a9">SVF::GrammarBase::EBNFSigns</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; EBNFSigns</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00283">CFLGrammar.h:283</a></div></div>
80
80
  <div class="ttc" id="structSVF_1_1GrammarBase_1_1Symbol_html_af26cd32a0c3b88aec053bec17519f942"><div class="ttname"><a href="structSVF_1_1GrammarBase_1_1Symbol.html#af26cd32a0c3b88aec053bec17519f942">SVF::GrammarBase::Symbol::variableAttribute</a></div><div class="ttdeci">VariableAttribute variableAttribute</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00046">CFLGrammar.h:46</a></div></div>
81
81
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
82
- <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>
82
+ <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#l00049">SVFType.h:49</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_aa663563ea03e11371d67ff4673e98a54"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#aa663563ea03e11371d67ff4673e98a54">SVF::CFLGrammar::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00346">CFLGrammar.cpp:346</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1GrammarBase_html_aa188ee22955b98c31abbf2b339b64d20"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#aa188ee22955b98c31abbf2b339b64d20">SVF::GrammarBase::insertAttribute</a></div><div class="ttdeci">void insertAttribute(Kind kind, Attribute a)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00327">CFLGrammar.cpp:327</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a1e1bf1e32bcd7c68ce789c2f9f6327c0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a1e1bf1e32bcd7c68ce789c2f9f6327c0">SVF::GrammarBase::setAttributeKinds</a></div><div class="ttdeci">void setAttributeKinds(const Set&lt; Kind &gt; &amp;attributeKind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00050">CFLGrammar.cpp:50</a></div></div>
@@ -87,7 +87,7 @@ $(function() {
87
87
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ad2d56d8cdc4539d4201d1995fb36e772"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">SVF::GrammarBase::str2Kind</a></div><div class="ttdeci">Kind str2Kind(std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00055">CFLGrammar.cpp:55</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00040">CFLGrammar.h:40</a></div></div>
90
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
90
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
91
91
  <div class="ttc" id="CFLGrammar_8h_html"><div class="ttname"><a href="CFLGrammar_8h.html">CFLGrammar.h</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a9cc406edc117b3abd07a85f66ca892a0"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a9cc406edc117b3abd07a85f66ca892a0">SVF::GrammarBase::extractKindStrFromSymbolStr</a></div><div class="ttdeci">std::string extractKindStrFromSymbolStr(const std::string symbolStr) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00207">CFLGrammar.cpp:207</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a63389968c8d246a84562a8d17e08790b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a63389968c8d246a84562a8d17e08790b">SVF::GrammarBase::insertNonTerminalSymbol</a></div><div class="ttdeci">Symbol insertNonTerminalSymbol(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00249">CFLGrammar.cpp:249</a></div></div>
@@ -84,7 +84,7 @@ $(function() {
84
84
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a2af19122bccb7ca0c7ab44a07a1bdfb1"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a2af19122bccb7ca0c7ab44a07a1bdfb1">SVF::GrammarBase::insertEBNFSigns</a></div><div class="ttdeci">Symbol insertEBNFSigns(std::string strLit)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00311">CFLGrammar.cpp:311</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1GrammarBase_1_1SymbolHash_html"><div class="ttname"><a href="classSVF_1_1GrammarBase_1_1SymbolHash.html">SVF::GrammarBase::SymbolHash</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00120">CFLGrammar.h:120</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_ac167616ad6e48161b0cb890107145ffa"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#ac167616ad6e48161b0cb890107145ffa">SVF::CFLGrammar::getProdsFromFirstRHS</a></div><div class="ttdeci">const Productions &amp; getProdsFromFirstRHS(const Symbol sym) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00353">CFLGrammar.h:353</a></div></div>
87
- <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00065">SVFType.h:65</a></div></div>
87
+ <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00064">SVFType.h:64</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a4561438149716c91178ea013686f66ae"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a4561438149716c91178ea013686f66ae">SVF::GrammarBase::getRawProductions</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; &amp; getRawProductions()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00190">CFLGrammar.h:190</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ad87ca88d62e7bc3a189652c707a72e12"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad87ca88d62e7bc3a189652c707a72e12">SVF::GrammarBase::setEBNFSigns</a></div><div class="ttdeci">void setEBNFSigns(Map&lt; std::string, Kind &gt; &amp;EBNFSigns)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00185">CFLGrammar.h:185</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_a2494806a1282de3d7f6b588f7d6cc83e"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a2494806a1282de3d7f6b588f7d6cc83e">SVF::CFLGrammar::num_generator</a></div><div class="ttdeci">const u32_t num_generator()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00388">CFLGrammar.h:388</a></div></div>
@@ -104,7 +104,7 @@ $(function() {
104
104
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a755024745a77509d2f07867be8245a4d"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a755024745a77509d2f07867be8245a4d">SVF::GrammarBase::Productions</a></div><div class="ttdeci">SymbolSet&lt; Production &gt; Productions</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00157">CFLGrammar.h:157</a></div></div>
105
105
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_ac0f09c94e9c6efc00398ed7d5ca1fe0f"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#ac0f09c94e9c6efc00398ed7d5ca1fe0f">SVF::CFLGrammar::getFirstRHS2Prods</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; &amp; getFirstRHS2Prods()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00318">CFLGrammar.h:318</a></div></div>
107
- <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>
107
+ <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#l00049">SVFType.h:49</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_a640023178f4a6db832ca30256759484f"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#a640023178f4a6db832ca30256759484f">SVF::CFLGrammar::firstRHS2Prods</a></div><div class="ttdeci">SymbolMap&lt; Symbol, Productions &gt; firstRHS2Prods</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00396">CFLGrammar.h:396</a></div></div>
109
109
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a04140ef06feee613506529fd8c23665e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a04140ef06feee613506529fd8c23665e">SVF::GrammarBase::getNonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; &amp; getNonterminals()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00160">CFLGrammar.h:160</a></div></div>
110
110
  <div class="ttc" id="structSVF_1_1GrammarBase_1_1Symbol_html_aa37072e1a6c0875305260c7c2414d767"><div class="ttname"><a href="structSVF_1_1GrammarBase_1_1Symbol.html#aa37072e1a6c0875305260c7c2414d767">SVF::GrammarBase::Symbol::Symbol</a></div><div class="ttdeci">Symbol(const u32_t &amp;num)</div><div class="ttdoc">Contruct from u32_t move the bit to right field. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00052">CFLGrammar.h:52</a></div></div>
@@ -177,7 +177,7 @@ $(function() {
177
177
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a2620ded7573ebdb8b4595e199105ef0e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a2620ded7573ebdb8b4595e199105ef0e">SVF::GrammarBase::getAttrSyms</a></div><div class="ttdeci">const Set&lt; Kind &gt; &amp; getAttrSyms() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00243">CFLGrammar.h:243</a></div></div>
178
178
  <div class="ttc" id="classSVF_1_1GrammarBase_html_afc9635e14b5871df457bf64fae6ad8cf"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#afc9635e14b5871df457bf64fae6ad8cf">SVF::GrammarBase::setNonterminals</a></div><div class="ttdeci">void setNonterminals(Map&lt; std::string, Kind &gt; &amp;nonterminals)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00165">CFLGrammar.h:165</a></div></div>
179
179
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a5c081c6ff0501fc91b71352995d6d9dc"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a5c081c6ff0501fc91b71352995d6d9dc">SVF::GrammarBase::str2Symbol</a></div><div class="ttdeci">Symbol str2Symbol(const std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00074">CFLGrammar.cpp:74</a></div></div>
180
- <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
180
+ <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
181
181
  <div class="ttc" id="classSVF_1_1CFLFIFOWorkList_html_aa2ac3edad97017817899d081dc6f1df7"><div class="ttname"><a href="classSVF_1_1CFLFIFOWorkList.html#aa2ac3edad97017817899d081dc6f1df7">SVF::CFLFIFOWorkList::DataDeque</a></div><div class="ttdeci">std::deque&lt; Data &gt; DataDeque</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00410">CFLGrammar.h:410</a></div></div>
182
182
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ac0e54c6a5e87f9d91a5296504914849b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ac0e54c6a5e87f9d91a5296504914849b">SVF::GrammarBase::nonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; nonterminals</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00281">CFLGrammar.h:281</a></div></div>
183
183
  <div class="ttc" id="structSVF_1_1GrammarBase_1_1Symbol_html_a0c53c26afedc5ada95b32fa2d3b6e136"><div class="ttname"><a href="structSVF_1_1GrammarBase_1_1Symbol.html#a0c53c26afedc5ada95b32fa2d3b6e136">SVF::GrammarBase::Symbol::operator!=</a></div><div class="ttdeci">bool operator!=(const Symbol &amp;s) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00104">CFLGrammar.h:104</a></div></div>
@@ -89,7 +89,7 @@ $(function() {
89
89
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">SVF::VFGEdge::RetDirVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00056">VFGEdge.h:56</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
92
- <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>
92
+ <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#l00049">SVFType.h:49</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a04140ef06feee613506529fd8c23665e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a04140ef06feee613506529fd8c23665e">SVF::GrammarBase::getNonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; &amp; getNonterminals()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00160">CFLGrammar.h:160</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">SVF::ConstraintEdge::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
@@ -74,7 +74,7 @@ $(function() {
74
74
  <div class="ttc" id="classSVF_1_1AliasCFLGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00151">CFLGraphBuilder.h:151</a></div></div>
75
75
  <div class="ttc" id="SVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
76
76
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
77
- <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>
77
+ <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#l00049">SVFType.h:49</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a04140ef06feee613506529fd8c23665e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a04140ef06feee613506529fd8c23665e">SVF::GrammarBase::getNonterminals</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; &amp; getNonterminals()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00160">CFLGrammar.h:160</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00045">CFLGraphBuilder.h:45</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1CFLGraph_html_a9eea8083dbeaf898948595b1d75cfee2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">SVF::CFLGraph::addCFLEdge</a></div><div class="ttdeci">virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00047">CFLGraph.cpp:47</a></div></div>
@@ -89,7 +89,7 @@ $(function() {
89
89
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00054">GenericGraph.h:54</a></div></div>
90
90
  <div class="ttc" id="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4_html_a28fcd691628f74955daf5180a1c197ed"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html#a28fcd691628f74955daf5180a1c197ed">SVF::DOTGraphTraits&lt; CFLGraph * &gt;::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00160">CFLGraph.cpp:160</a></div></div>
91
91
  <div class="ttc" id="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4_html_a85e149bc2cb9c6de4ad5b106138f5cd9"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html#a85e149bc2cb9c6de4ad5b106138f5cd9">SVF::DOTGraphTraits&lt; CFLGraph * &gt;::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00094">CFLGraph.cpp:94</a></div></div>
92
- <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>
92
+ <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#l00050">SVFUtil.h:50</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00388">GenericGraph.h:388</a></div></div>
94
94
  <div class="ttc" id="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4_html_aa12ac2ae92225381d7c8386e96c9a88e"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html#aa12ac2ae92225381d7c8386e96c9a88e">SVF::DOTGraphTraits&lt; CFLGraph * &gt;::getGraphName</a></div><div class="ttdeci">static std::string getGraphName(CFLGraph *)</div><div class="ttdoc">Return name of the graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00099">CFLGraph.cpp:99</a></div></div>
95
95
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
@@ -69,7 +69,7 @@ $(function() {
69
69
  <a href="CFLGraph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===----- CFLGraph.h -- Graph for context-free language reachability analysis --//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CFLGraph.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: March 5, 2022</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef CFLG_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define CFLG_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;regex&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLGrammar_8h.html">CFL/CFLGrammar.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ConsG_8h.html">Graphs/ConsG.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a19ab125d26c5d9c533bc1c3904ac92d9"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge&lt;CFLNode&gt;</a> <a class="code" href="namespaceSVF.html#a19ab125d26c5d9c533bc1c3904ac92d9">GenericCFLEdgeTy</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLEdge.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>: <span class="keyword">public</span> GenericCFLEdgeTy</div><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;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLEdge.html#ab9bf30450121917228deca8a83a64ac0"> 50</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode&lt;CFLNode, CFLEdge&gt;::GEdgeSetTy</a> <a class="code" href="classSVF_1_1CFLEdge.html#ab9bf30450121917228deca8a83a64ac0">CFLEdgeSetTy</a>;</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"><a class="line" href="classSVF_1_1CFLEdge.html#a808f0a3b6df73df41dcc2f0bfe944116"> 52</a></span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html#a808f0a3b6df73df41dcc2f0bfe944116">CFLEdge</a>(<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *s, <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k = 0):</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GenericCFLEdgeTy(s,d,k)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1CFLEdge.html#a8754c9d2a2a8b342d614383ee5829e70">~CFLEdge</a>() <span class="keyword">override</span> = <span class="keywordflow">default</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"><a class="line" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8"> 58</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> <a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#a20d8b844fc4bb0bb776d290b4e477fc5">getEdgeKindWithoutMask</a>();</div><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;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLEdge.html#a5d11e42f5571287992362669fee9e159"> 63</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> <a class="code" href="classSVF_1_1CFLEdge.html#a5d11e42f5571287992362669fee9e159">getEdgeKindWithMask</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1GenericEdge.html#a93dec4c27088242a4b1b6aa82cea46b9">EdgeKindMask</a> &amp; this-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#a20d8b844fc4bb0bb776d290b4e477fc5">getEdgeKindWithoutMask</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLEdge.html#ae4c8562ff6801503de9e3cb0c4ebe2b8"> 68</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> <a class="code" href="classSVF_1_1CFLEdge.html#ae4c8562ff6801503de9e3cb0c4ebe2b8">getEdgeAttri</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>() &gt;&gt; this-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</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"><a class="line" href="namespaceSVF.html#a1c5f28b91c7c1eeec6ae459b573b2889"> 75</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode&lt;CFLNode,CFLEdge&gt;</a> <a class="code" href="namespaceSVF.html#a1c5f28b91c7c1eeec6ae459b573b2889">GenericCFLNodeTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html"> 76</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>: <span class="keyword">public</span> GenericCFLNodeTy</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="keyword">public</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a235dcc5d8115d8450230638ce68070d6"> 79</a></span>&#160; <a class="code" href="classSVF_1_1CFLNode.html#a235dcc5d8115d8450230638ce68070d6">CFLNode</a> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0, <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> k = 0):</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; GenericCFLNodeTy(i, k)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</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;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; ~<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#ade95ad99cb4d89e5eeb5ce7043e80852"> 87</a></span>&#160; <span class="keyword">typedef</span> std::map &lt;GrammarBase::Symbol, CFLEdge::CFLEdgeSetTy&gt; <a class="code" href="classSVF_1_1CFLNode.html#ade95ad99cb4d89e5eeb5ce7043e80852">CFLEdgeDataTy</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a3a7d1ea890272e9905406638b12bdc30"> 90</a></span>&#160; CFLEdgeDataTy <a class="code" href="classSVF_1_1CFLNode.html#a3a7d1ea890272e9905406638b12bdc30">inCFLEdges</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a47eba9df9dc664e56631ecc9b6146b33"> 91</a></span>&#160; CFLEdgeDataTy <a class="code" href="classSVF_1_1CFLNode.html#a47eba9df9dc664e56631ecc9b6146b33">outCFLEdges</a>;</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a38123f7bd5e33fb085d0108bcbdc9729"> 94</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html#ab9bf30450121917228deca8a83a64ac0">CFLEdge::CFLEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1CFLNode.html#a38123f7bd5e33fb085d0108bcbdc9729">getInEdgeWithTy</a>(<a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> inCFLEdges[s];</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;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a0a1b7384a42cad855bddf881e0e09542"> 99</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html#ab9bf30450121917228deca8a83a64ac0">CFLEdge::CFLEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1CFLNode.html#a0a1b7384a42cad855bddf881e0e09542">getOutEdgeWithTy</a>(<a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> outCFLEdges[s];</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;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a2c4c59e6c12a2a0efb1d58702c7062c2"> 104</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a2c4c59e6c12a2a0efb1d58702c7062c2">addInEdgeWithKind</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* inEdge, <a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s)</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; assert(inEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() == this-&gt;getId());</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">bool</span> added1 = <a class="code" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">GenericNode::addIncomingEdge</a>(inEdge);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">bool</span> added2 = inCFLEdges[s].insert(inEdge).second;</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="keywordflow">return</span> added1 &amp;&amp; added2;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</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"><a class="line" href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5"> 113</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5">addIngoingEdge</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* inEdge)</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; <span class="keywordflow">return</span> addInEdgeWithKind(inEdge, inEdge-&gt;<a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>());</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</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"><a class="line" href="classSVF_1_1CFLNode.html#a22578acf04df6b655766f9a9d54f18d5"> 118</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a22578acf04df6b655766f9a9d54f18d5">addOutEdgeWithKind</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* outEdge, <a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s)</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; assert(outEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() == this-&gt;getId());</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">bool</span> added1 = <a class="code" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">GenericNode::addOutgoingEdge</a>(outEdge);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> added2 = outCFLEdges[s].insert(outEdge).second;</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">return</span> added1 &amp;&amp; added2;</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;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d"> 127</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d">addOutgoingEdge</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* OutEdge)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> addOutEdgeWithKind(OutEdge, OutEdge-&gt;<a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLNode.html#a60dfc3e421558eecee5065e8ae5f984a"> 132</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a60dfc3e421558eecee5065e8ae5f984a">removeCFLInEdge</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* inEdge)</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; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num1 = removeIncomingEdge(inEdge);</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; <a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s = inEdge-&gt;<a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num2 = inCFLEdges[s].erase(inEdge);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> num1 &amp;&amp; num2;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</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"><a class="line" href="classSVF_1_1CFLNode.html#a821078d812986c488932610063d7509f"> 142</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CFLNode.html#a821078d812986c488932610063d7509f">removeCFLOutEdge</a>(<a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* outEdge)</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="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num1 = removeOutgoingEdge(outEdge);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">GrammarBase::Symbol</a> s = outEdge-&gt;<a class="code" href="classSVF_1_1CFLEdge.html#acab367a1633d00afdafadf3f3a43e0c8">getEdgeKind</a>();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num2 = outCFLEdges[s].erase(outEdge);</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; <span class="keywordflow">return</span> num1 &amp;&amp; num2;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a6b1d99f1ec47347364981e23a9d21e0a"> 154</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph&lt;CFLNode,CFLEdge&gt;</a> <a class="code" href="namespaceSVF.html#a6b1d99f1ec47347364981e23a9d21e0a">GenericCFLGraphTy</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html"> 155</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>: <span class="keyword">public</span> GenericCFLGraphTy</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#a87671d8f952e7dd65dabe2d5ce6764e3"> 158</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structSVF_1_1GrammarBase_1_1Symbol.html">CFLGrammar::Symbol</a> <a class="code" href="classSVF_1_1CFLGraph.html#a87671d8f952e7dd65dabe2d5ce6764e3">Symbol</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#a27444bf84135748d32291cf0aa78ff81"> 159</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> <a class="code" href="classSVF_1_1CFLGraph.html#a27444bf84135748d32291cf0aa78ff81">Kind</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#a09ba3a0e3878f8ac55596838ea958f14"> 160</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode&lt;CFLNode,CFLEdge&gt;::GEdgeSetTy</a> <a class="code" href="classSVF_1_1CFLGraph.html#a09ba3a0e3878f8ac55596838ea958f14">CFLEdgeSet</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#a0723f25be2a163b21f478cddca5293d2"> 161</a></span>&#160; Kind <a class="code" href="classSVF_1_1CFLGraph.html#a0723f25be2a163b21f478cddca5293d2">startKind</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#a3dddc713969a95943d1f9b1e31ec71bc"> 163</a></span>&#160; <a class="code" href="classSVF_1_1CFLGraph.html#a3dddc713969a95943d1f9b1e31ec71bc">CFLGraph</a>(Kind kind)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; startKind = kind;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; ~<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; Kind getStartKind() <span class="keyword">const</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> addCFLNode(<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* node);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* addCFLEdge(<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* <a class="code" href="classSVF_1_1GenericEdge.html#a0e8736f88ee75da025d874f92328ca71">src</a>, <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aa41cb7482bdab1ba328f4b94f30f3ee4">dst</a>, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">CFLEdge::GEdgeFlag</a> label);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFLEdge.html">CFLEdge</a>* <a class="code" href="CHG_8cpp.html#a4c6cbac96543cd55e4df050a33512ac5">hasEdge</a>(<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* src, <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* dst, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">CFLEdge::GEdgeFlag</a> label);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">void</span> <a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">void</span> view();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16"> 181</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> CFLEdgeSet&amp; <a class="code" href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">getCFLEdges</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> cflEdgeSet;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe"> 187</a></span>&#160; CFLEdgeSet <a class="code" href="classSVF_1_1CFLGraph.html#afb41039ad53899fa64fedcef8b7aa7fe">cflEdgeSet</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">/* !</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> * GenericGraphTraits specializations for generic graph algorithms.</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> * Provide graph traits for traversing from a constraint node using standard graph traversals.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html"> 198</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>*&gt; : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;SVF::GenericNode&lt;SVF::CFLNode,SVF::CFLEdge&gt;* &gt;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;};</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html"> 204</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;<a class="code" href="structSVF_1_1Inverse.html">Inverse</a>&lt;SVF::<a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *&gt; &gt; : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;Inverse&lt;SVF::GenericNode&lt;SVF::CFLNode,SVF::CFLEdge&gt;* &gt; &gt;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;};</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html"> 208</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span><a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;SVF::<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>*&gt; : <span class="keyword">public</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a>&lt;SVF::GenericGraph&lt;SVF::CFLNode,SVF::CFLEdge&gt;* &gt;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html#a0a1dd90a8609a91115f17b78666d3674"> 210</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1CFLNode.html">SVF::CFLNode</a> *<a class="code" href="structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html#a0a1dd90a8609a91115f17b78666d3674">NodeRef</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;};</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CFLG_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CFLNode_html_a38123f7bd5e33fb085d0108bcbdc9729"><div class="ttname"><a href="classSVF_1_1CFLNode.html#a38123f7bd5e33fb085d0108bcbdc9729">SVF::CFLNode::getInEdgeWithTy</a></div><div class="ttdeci">const CFLEdge::CFLEdgeSetTy &amp; getInEdgeWithTy(GrammarBase::Symbol s)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00094">CFLGraph.h:94</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1CFLEdge_html_a8754c9d2a2a8b342d614383ee5829e70"><div class="ttname"><a href="classSVF_1_1CFLEdge.html#a8754c9d2a2a8b342d614383ee5829e70">SVF::CFLEdge::~CFLEdge</a></div><div class="ttdeci">~CFLEdge() override=default</div></div>
71
71
  <div class="ttc" id="classSVF_1_1CFLEdge_html_ae4c8562ff6801503de9e3cb0c4ebe2b8"><div class="ttname"><a href="classSVF_1_1CFLEdge.html#ae4c8562ff6801503de9e3cb0c4ebe2b8">SVF::CFLEdge::getEdgeAttri</a></div><div class="ttdeci">GEdgeKind getEdgeAttri() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00068">CFLGraph.h:68</a></div></div>
72
- <div class="ttc" id="CHG_8cpp_html_a4c6cbac96543cd55e4df050a33512ac5"><div class="ttname"><a href="CHG_8cpp.html#a4c6cbac96543cd55e4df050a33512ac5">hasEdge</a></div><div class="ttdeci">static bool hasEdge(const CHNode *src, const CHNode *dst, CHEdge::CHEDGETYPE et)</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8cpp_source.html#l00037">CHG.cpp:37</a></div></div>
72
+ <div class="ttc" id="CHG_8cpp_html_a4c6cbac96543cd55e4df050a33512ac5"><div class="ttname"><a href="CHG_8cpp.html#a4c6cbac96543cd55e4df050a33512ac5">hasEdge</a></div><div class="ttdeci">static bool hasEdge(const CHNode *src, const CHNode *dst, CHEdge::CHEDGETYPE et)</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8cpp_source.html#l00038">CHG.cpp:38</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1CFLGraph_html_a3dddc713969a95943d1f9b1e31ec71bc"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a3dddc713969a95943d1f9b1e31ec71bc">SVF::CFLGraph::CFLGraph</a></div><div class="ttdeci">CFLGraph(Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00163">CFLGraph.h:163</a></div></div>
74
74
  <div class="ttc" id="ConsG_8h_html"><div class="ttname"><a href="ConsG_8h.html">ConsG.h</a></div></div>
75
75
  <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>
@@ -85,7 +85,7 @@ $(function() {
85
85
  <div class="ttc" id="classSVF_1_1CFLNode_html_a0a1b7384a42cad855bddf881e0e09542"><div class="ttname"><a href="classSVF_1_1CFLNode.html#a0a1b7384a42cad855bddf881e0e09542">SVF::CFLNode::getOutEdgeWithTy</a></div><div class="ttdeci">const CFLEdge::CFLEdgeSetTy &amp; getOutEdgeWithTy(GrammarBase::Symbol s)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00099">CFLGraph.h:99</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1CFLNode_html_ade95ad99cb4d89e5eeb5ce7043e80852"><div class="ttname"><a href="classSVF_1_1CFLNode.html#ade95ad99cb4d89e5eeb5ce7043e80852">SVF::CFLNode::CFLEdgeDataTy</a></div><div class="ttdeci">std::map&lt; GrammarBase::Symbol, CFLEdge::CFLEdgeSetTy &gt; CFLEdgeDataTy</div><div class="ttdoc">Different Kind(label) associated edges set. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00087">CFLGraph.h:87</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1GenericEdge_html_a20d8b844fc4bb0bb776d290b4e477fc5"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a20d8b844fc4bb0bb776d290b4e477fc5">SVF::GenericEdge::getEdgeKindWithoutMask</a></div><div class="ttdeci">GEdgeKind getEdgeKindWithoutMask() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00087">GenericGraph.h:87</a></div></div>
88
- <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>
88
+ <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#l00049">SVFType.h:49</a></div></div>
89
89
  <div class="ttc" id="namespaceSVF_html_a19ab125d26c5d9c533bc1c3904ac92d9"><div class="ttname"><a href="namespaceSVF.html#a19ab125d26c5d9c533bc1c3904ac92d9">SVF::GenericCFLEdgeTy</a></div><div class="ttdeci">GenericEdge&lt; CFLNode &gt; GenericCFLEdgeTy</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00043">CFLGraph.h:43</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00044">GenericGraph.h:44</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1CFLEdge_html_a5d11e42f5571287992362669fee9e159"><div class="ttname"><a href="classSVF_1_1CFLEdge.html#a5d11e42f5571287992362669fee9e159">SVF::CFLEdge::getEdgeKindWithMask</a></div><div class="ttdeci">GEdgeKind getEdgeKindWithMask() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00063">CFLGraph.h:63</a></div></div>