svf-tools 1.0.558 → 1.0.561

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 (327) hide show
  1. package/README.md +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
  3. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
  9. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +8 -8
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
  11. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
  12. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
  14. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
  16. package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
  17. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
  18. package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
  19. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
  20. package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
  22. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
  25. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
  26. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
  27. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
  28. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
  32. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  34. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  36. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
  39. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
  40. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
  42. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  43. package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
  44. package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
  45. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
  46. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  48. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  49. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  50. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
  51. package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
  52. package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
  53. package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
  54. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
  57. package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
  58. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
  59. package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
  60. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
  61. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
  64. package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
  65. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
  66. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
  67. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
  68. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
  69. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
  70. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
  74. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  75. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
  80. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  82. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  83. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  90. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  92. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  93. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  94. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
  95. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
  97. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
  98. package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
  99. package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
  100. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  101. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
  104. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
  105. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  106. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  109. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
  110. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
  112. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
  118. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
  119. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
  124. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
  125. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
  126. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
  127. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
  128. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
  129. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
  130. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  131. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
  135. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
  136. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  137. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
  138. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
  139. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
  141. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  142. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
  144. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
  146. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
  147. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
  149. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  150. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
  151. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
  153. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
  159. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  160. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  161. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
  162. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
  163. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
  164. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
  165. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
  166. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
  167. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
  168. package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
  169. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
  170. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
  171. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
  172. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
  173. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
  174. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
  175. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
  176. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
  177. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
  178. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
  179. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
  181. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
  182. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  187. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
  189. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
  190. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
  192. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
  193. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
  194. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
  196. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  197. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
  199. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  200. package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
  201. package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
  202. package/SVF-doxygen/html/html/functions_a.html +11 -5
  203. package/SVF-doxygen/html/html/functions_c.html +21 -18
  204. package/SVF-doxygen/html/html/functions_f.html +6 -6
  205. package/SVF-doxygen/html/html/functions_func.html +16 -10
  206. package/SVF-doxygen/html/html/functions_func_c.html +19 -16
  207. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  208. package/SVF-doxygen/html/html/functions_i.html +11 -8
  209. package/SVF-doxygen/html/html/functions_l.html +5 -5
  210. package/SVF-doxygen/html/html/functions_p.html +6 -6
  211. package/SVF-doxygen/html/html/functions_r.html +3 -7
  212. package/SVF-doxygen/html/html/functions_s.html +16 -14
  213. package/SVF-doxygen/html/html/functions_v.html +6 -6
  214. package/SVF-doxygen/html/html/functions_w.html +11 -11
  215. package/SVF-doxygen/html/html/globals_g.html +3 -3
  216. package/SVF-doxygen/html/html/globals_v.html +1 -2
  217. package/SVF-doxygen/html/html/globals_vars.html +3 -4
  218. package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
  219. package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
  220. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  221. package/SVF-doxygen/html/html/search/all_1.js +2 -0
  222. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  223. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  224. package/SVF-doxygen/html/html/search/all_12.js +8 -8
  225. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  226. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  227. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  228. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  229. package/SVF-doxygen/html/html/search/all_3.js +1 -0
  230. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  231. package/SVF-doxygen/html/html/search/all_7.js +2 -2
  232. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  233. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  234. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  235. package/SVF-doxygen/html/html/search/functions_0.js +2 -0
  236. package/SVF-doxygen/html/html/search/functions_2.js +1 -0
  237. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  238. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  239. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  240. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  241. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  242. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  243. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  244. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  245. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
  246. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
  247. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
  248. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
  249. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  250. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  251. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  252. package/include/CFL/CFLGraphBuilder.h +9 -0
  253. package/include/CFL/PEGGrammar.txt +4 -8
  254. package/include/DDA/ContextDDA.h +29 -0
  255. package/include/DDA/DDAClient.h +23 -0
  256. package/include/DDA/DDAPass.h +22 -0
  257. package/include/DDA/DDAStat.h +22 -0
  258. package/include/DDA/DDAVFSolver.h +22 -0
  259. package/include/DDA/FlowDDA.h +29 -0
  260. package/include/MSSA/MSSAMuChi.h +1 -1
  261. package/include/MSSA/MemPartition.h +1 -1
  262. package/include/MSSA/MemRegion.h +5 -1
  263. package/include/MSSA/MemSSA.h +7 -1
  264. package/include/MSSA/SVFGBuilder.h +1 -1
  265. package/include/MTA/FSMPTA.h +26 -0
  266. package/include/MTA/LockAnalysis.h +22 -0
  267. package/include/MTA/MHP.h +22 -0
  268. package/include/MTA/MTA.h +27 -1
  269. package/include/MTA/MTAStat.h +22 -0
  270. package/include/MTA/PCG.h +22 -0
  271. package/include/MTA/TCT.h +22 -0
  272. package/include/MemoryModel/AbstractPointsToDS.h +34 -0
  273. package/include/MemoryModel/ConditionalPT.h +1 -1
  274. package/include/MemoryModel/LocationSet.h +1 -1
  275. package/include/MemoryModel/MutablePointsToDS.h +32 -0
  276. package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
  277. package/include/MemoryModel/PersistentPointsToCache.h +3 -1
  278. package/include/MemoryModel/PersistentPointsToDS.h +10 -0
  279. package/include/MemoryModel/PointerAnalysis.h +1 -1
  280. package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
  281. package/include/MemoryModel/SVFStatements.h +1 -1
  282. package/include/SABER/DoubleFreeChecker.h +1 -1
  283. package/include/SABER/FileChecker.h +1 -1
  284. package/include/SABER/LeakChecker.h +1 -1
  285. package/include/SABER/ProgSlice.h +8 -1
  286. package/include/SABER/SaberAnnotator.h +1 -1
  287. package/include/SABER/SaberCheckerAPI.h +1 -1
  288. package/include/SABER/SaberCondAllocator.h +1 -1
  289. package/include/SABER/SaberSVFGBuilder.h +1 -1
  290. package/include/SABER/SrcSnkDDA.h +8 -1
  291. package/include/SABER/SrcSnkSolver.h +1 -1
  292. package/include/Util/ExtAPI.h +3 -0
  293. package/include/Util/ExtAPI.json +1456 -44
  294. package/include/WPA/Andersen.h +5 -0
  295. package/include/WPA/TypeAnalysis.h +1 -1
  296. package/include/WPA/VersionedFlowSensitive.h +4 -0
  297. package/lib/CFL/CFLGraphBuilder.cpp +44 -0
  298. package/lib/DDA/ContextDDA.cpp +22 -0
  299. package/lib/DDA/DDAClient.cpp +22 -0
  300. package/lib/DDA/DDAPass.cpp +23 -0
  301. package/lib/DDA/DDAStat.cpp +22 -0
  302. package/lib/DDA/FlowDDA.cpp +22 -0
  303. package/lib/MTA/FSMPTA.cpp +22 -0
  304. package/lib/MTA/LockAnalysis.cpp +22 -0
  305. package/lib/MTA/MHP.cpp +23 -1
  306. package/lib/MTA/MTA.cpp +23 -0
  307. package/lib/MTA/MTAStat.cpp +22 -0
  308. package/lib/MTA/PCG.cpp +22 -0
  309. package/lib/MTA/TCT.cpp +23 -0
  310. package/lib/MemoryModel/LocationSet.cpp +1 -1
  311. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  312. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  313. package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
  314. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  315. package/lib/SABER/FileChecker.cpp +1 -1
  316. package/lib/SABER/LeakChecker.cpp +1 -1
  317. package/lib/SABER/ProgSlice.cpp +1 -1
  318. package/lib/SABER/SaberAnnotator.cpp +1 -1
  319. package/lib/SABER/SaberCheckerAPI.cpp +1 -1
  320. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  321. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  322. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  323. package/lib/Util/ExtAPI.cpp +42 -4
  324. package/lib/WPA/Steensgaard.cpp +22 -0
  325. package/lib/WPA/TypeAnalysis.cpp +1 -1
  326. package/lib/WPA/WPAPass.cpp +1 -1
  327. package/package.json +1 -1
@@ -70,22 +70,25 @@ $(function() {
70
70
  <p>This is the complete list of members for <a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a>, including all inherited members.</p>
71
71
  <table class="directory">
72
72
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(CFLGrammar::Kind kind, CFLGrammar::Attribute attribute)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
73
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ae7a9f2103c68829290c1bd5fd9cde321">addBiCFLEdge</a>(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFLGrammar::Kind label)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
74
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#a715213d0b521b676832ec73b38d2014e">addBiGepCFLEdge</a>(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFLGrammar::Attribute attri)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
73
75
  <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">build</a>(GenericGraph&lt; N, E &gt; *graph, CFLGraph *cflGraph)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
74
76
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5944c6a36e150a50a54aedd622c43ff9">build</a>(std::string filename, CFLGraph *cflGraph)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
75
77
  <tr><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a>(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"></td></tr>
76
78
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a0184dc6e00c60106034492d012d0a938">SVF::CFLGraphBuilder::buildBigraph</a>(GenericGraph&lt; N, E &gt; *graph, Kind startKind, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
77
79
  <tr><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">buildBiPEGgraph</a>(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR *pag)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"></td></tr>
78
80
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">buildFromDot</a>(std::string filename, GrammarBase *grammar)</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"></td></tr>
79
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
80
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
81
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd">getKind2AttrsMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
82
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd">getKind2LabelMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
83
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#afd384231987ab2be138ddb4a8590bc53">getLabel2KindMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
84
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
85
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5159cea5bc8d69715782ac5f56965a90">kind2AttrsMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
86
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
87
- <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
88
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">Symbol</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
81
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">connectVGep</a>(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR *pag)</td><td class="entry"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
82
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
83
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
84
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd">getKind2AttrsMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
85
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd">getKind2LabelMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
86
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#afd384231987ab2be138ddb4a8590bc53">getLabel2KindMap</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
87
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
88
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5159cea5bc8d69715782ac5f56965a90">kind2AttrsMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
89
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
90
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
91
+ <tr><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">Symbol</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
89
92
  </table></div><!-- contents -->
90
93
  <!-- start footer part -->
91
94
  <hr class="footer"/><address class="footer"><small>
@@ -64,6 +64,7 @@ $(function() {
64
64
  <div class="header">
65
65
  <div class="summary">
66
66
  <a href="#pub-methods">Public Member Functions</a> &#124;
67
+ <a href="#pri-methods">Private Member Functions</a> &#124;
67
68
  <a href="classSVF_1_1AliasCFLGraphBuilder-members.html">List of all members</a> </div>
68
69
  <div class="headertitle">
69
70
  <div class="title">SVF::AliasCFLGraphBuilder Class Reference</div> </div>
@@ -113,6 +114,17 @@ Public Member Functions</h2></td></tr>
113
114
  <tr class="memitem:a61d935099e0f8408fb2f2f91001cb2fd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> &gt; &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd">getKind2AttrsMap</a> ()</td></tr>
114
115
  <tr class="separator:a61d935099e0f8408fb2f2f91001cb2fd inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memSeparator" colspan="2">&#160;</td></tr>
115
116
  </table><table class="memberdecls">
117
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
118
+ Private Member Functions</h2></td></tr>
119
+ <tr class="memitem:a9feeeca8a919b19693e48d6a382c8871"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">connectVGep</a> (<a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *src, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *dst, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> level, <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *pag)</td></tr>
120
+ <tr class="separator:a9feeeca8a919b19693e48d6a382c8871"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="memitem:ae7a9f2103c68829290c1bd5fd9cde321"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ae7a9f2103c68829290c1bd5fd9cde321">addBiCFLEdge</a> (<a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *src, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *dst, <a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> label)</td></tr>
122
+ <tr class="memdesc:ae7a9f2103c68829290c1bd5fd9cde321"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle edge except for the GEP. <a href="#ae7a9f2103c68829290c1bd5fd9cde321">More...</a><br /></td></tr>
123
+ <tr class="separator:ae7a9f2103c68829290c1bd5fd9cde321"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
+ <tr class="memitem:a715213d0b521b676832ec73b38d2014e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#a715213d0b521b676832ec73b38d2014e">addBiGepCFLEdge</a> (<a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *src, <a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *dst, <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attri)</td></tr>
125
+ <tr class="memdesc:a715213d0b521b676832ec73b38d2014e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add Bidirectional GEP edge with attribute. <a href="#a715213d0b521b676832ec73b38d2014e">More...</a><br /></td></tr>
126
+ <tr class="separator:a715213d0b521b676832ec73b38d2014e"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
+ </table><table class="memberdecls">
116
128
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
117
129
  Additional Inherited Members</h2></td></tr>
118
130
  <tr class="inherit_header pro_types_classSVF_1_1CFLGraphBuilder"><td colspan="2" onclick="javascript:toggleInherit('pro_types_classSVF_1_1CFLGraphBuilder')"><img src="closed.png" alt="-"/>&#160;Protected Types inherited from <a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td></tr>
@@ -136,6 +148,119 @@ Additional Inherited Members</h2></td></tr>
136
148
  <div class="textblock">
137
149
  <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00149">149</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
138
150
  </div><h2 class="groupheader">Member Function Documentation</h2>
151
+ <a id="ae7a9f2103c68829290c1bd5fd9cde321"></a>
152
+ <h2 class="memtitle"><span class="permalink"><a href="#ae7a9f2103c68829290c1bd5fd9cde321">&#9670;&nbsp;</a></span>addBiCFLEdge()</h2>
153
+
154
+ <div class="memitem">
155
+ <div class="memproto">
156
+ <table class="mlabels">
157
+ <tr>
158
+ <td class="mlabels-left">
159
+ <table class="memname">
160
+ <tr>
161
+ <td class="memname">void SVF::AliasCFLGraphBuilder::addBiCFLEdge </td>
162
+ <td>(</td>
163
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td>
164
+ <td class="paramname"><em>cflGraph</em>, </td>
165
+ </tr>
166
+ <tr>
167
+ <td class="paramkey"></td>
168
+ <td></td>
169
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
170
+ <td class="paramname"><em>src</em>, </td>
171
+ </tr>
172
+ <tr>
173
+ <td class="paramkey"></td>
174
+ <td></td>
175
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
176
+ <td class="paramname"><em>dst</em>, </td>
177
+ </tr>
178
+ <tr>
179
+ <td class="paramkey"></td>
180
+ <td></td>
181
+ <td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a>&#160;</td>
182
+ <td class="paramname"><em>label</em>&#160;</td>
183
+ </tr>
184
+ <tr>
185
+ <td></td>
186
+ <td>)</td>
187
+ <td></td><td></td>
188
+ </tr>
189
+ </table>
190
+ </td>
191
+ <td class="mlabels-right">
192
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
193
+ </tr>
194
+ </table>
195
+ </div><div class="memdoc">
196
+
197
+ <p>Handle edge except for the GEP. </p>
198
+
199
+ <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00386">386</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
200
+ <div class="fragment"><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;{</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(src-&gt;getId()), cflGraph-&gt;getGNode(dst-&gt;getId()), label);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[label];</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(dst-&gt;getId()), cflGraph-&gt;getGNode(src-&gt;getId()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00048">CFLGraphBuilder.h:48</a></div></div>
201
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map&lt; Kind, std::string &gt; kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
202
+ <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
203
+ </div><!-- fragment -->
204
+ </div>
205
+ </div>
206
+ <a id="a715213d0b521b676832ec73b38d2014e"></a>
207
+ <h2 class="memtitle"><span class="permalink"><a href="#a715213d0b521b676832ec73b38d2014e">&#9670;&nbsp;</a></span>addBiGepCFLEdge()</h2>
208
+
209
+ <div class="memitem">
210
+ <div class="memproto">
211
+ <table class="mlabels">
212
+ <tr>
213
+ <td class="mlabels-left">
214
+ <table class="memname">
215
+ <tr>
216
+ <td class="memname">void SVF::AliasCFLGraphBuilder::addBiGepCFLEdge </td>
217
+ <td>(</td>
218
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td>
219
+ <td class="paramname"><em>cflGraph</em>, </td>
220
+ </tr>
221
+ <tr>
222
+ <td class="paramkey"></td>
223
+ <td></td>
224
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
225
+ <td class="paramname"><em>src</em>, </td>
226
+ </tr>
227
+ <tr>
228
+ <td class="paramkey"></td>
229
+ <td></td>
230
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
231
+ <td class="paramname"><em>dst</em>, </td>
232
+ </tr>
233
+ <tr>
234
+ <td class="paramkey"></td>
235
+ <td></td>
236
+ <td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a>&#160;</td>
237
+ <td class="paramname"><em>attri</em>&#160;</td>
238
+ </tr>
239
+ <tr>
240
+ <td></td>
241
+ <td>)</td>
242
+ <td></td><td></td>
243
+ </tr>
244
+ </table>
245
+ </td>
246
+ <td class="mlabels-right">
247
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
248
+ </tr>
249
+ </table>
250
+ </div><div class="memdoc">
251
+
252
+ <p>Add Bidirectional GEP edge with attribute. </p>
253
+
254
+ <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00395">395</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
255
+ <div class="fragment"><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">CFLEdge::GEdgeFlag</a> edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attri, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(src-&gt;getId()), cflGraph-&gt;getGNode(dst-&gt;getId()), edgeLabel);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>];</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(dst-&gt;getId()), cflGraph-&gt;getGNode(src-&gt;getId()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attri, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]));</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">SVF::ConstraintEdge::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
256
+ <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#l00052">GenericGraph.h:52</a></div></div>
257
+ <div class="ttc" id="classSVF_1_1GrammarBase_html_af418e1033618da75e974a04ee1d7e275"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">SVF::GrammarBase::getAttributedKind</a></div><div class="ttdeci">static Kind getAttributedKind(Attribute attribute, Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00251">CFLGrammar.h:251</a></div></div>
258
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map&lt; std::string, Kind &gt; label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00048">CFLGraphBuilder.h:48</a></div></div>
259
+ <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map&lt; Kind, std::string &gt; kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
260
+ <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
261
+ </div><!-- fragment -->
262
+ </div>
263
+ </div>
139
264
  <a id="ab19243c4aceffce7b257f3d8cb3050fd"></a>
140
265
  <h2 class="memtitle"><span class="permalink"><a href="#ab19243c4aceffce7b257f3d8cb3050fd">&#9670;&nbsp;</a></span>buildBigraph()</h2>
141
266
 
@@ -229,10 +354,13 @@ Additional Inherited Members</h2></td></tr>
229
354
  <p>Process Load</p>
230
355
  <p>Check Src of Load Dereference Node</p>
231
356
  <p>Add Addr Edge</p>
232
- <p>Add Copy Edge </p>
357
+ <p>Add Copy Edge</p>
358
+ <p>Handle VGep normalize to Normal Gep by connecting all geps' srcs to vgep dest Example: In Test Case: Ctest field-ptr-arith-varIdx.c.bc BFS Search the 8 LEVEL up to find the ValueNode, and the number of level search is arbitary the more the level search the more valueNode and the Vgep Dst will possivble connect </p>
233
359
 
234
360
  <p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00225">225</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
235
- <div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;{</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(startKind);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getTerminals())</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getNonterminals())</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; CFLNode* node = <span class="keyword">new</span> CFLNode((*it).first);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; cflGraph-&gt;addCFLNode((*it).first, node);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; ConstraintNode* node = (*it).second;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span>(ConstraintEdge* edge : node-&gt;getOutEdges())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span> (pag-&gt;isNullPtr(edge-&gt;getSrcID()))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; ConstraintNode* Dst = edge-&gt;getDstNode();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge* DstInEdge : Dst-&gt;getInEdges())</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (DstInEdge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; DerefNode = DstInEdge-&gt;getSrcNode();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; CFLDerefNode = cflGraph-&gt;getGNode(DstInEdge-&gt;getSrcID());</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-&gt;addDummyValNode();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; cflGraph-&gt;addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; cflGraph-&gt;addCFLEdge(CFLDerefNode, cflGraph-&gt;getGNode(edge-&gt;getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ConstraintNode* Src = edge-&gt;getSrcNode();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge* SrcInEdge : Src-&gt;getInEdges())</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (SrcInEdge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; DerefNode = SrcInEdge-&gt;getSrcNode();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; CFLDerefNode = cflGraph-&gt;getGNode(SrcInEdge-&gt;getSrcID());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-&gt;addDummyValNode();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; cflGraph-&gt;addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; cflGraph-&gt;addCFLEdge(CFLDerefNode, cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> edgeLabel = edge-&gt;getEdgeKind();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// Need to get the offset from the Const Edge</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; NormalGepCGEdge *nGepEdge = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;NormalGepCGEdge&gt;(edge);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attr = nGepEdge-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(edgeLabel, attr);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, edgeLabel);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]));</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key], attr);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
361
+ <div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;{</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(startKind);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getTerminals())</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar-&gt;getNonterminals())</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; CFLNode* node = <span class="keyword">new</span> CFLNode((*it).first);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; cflGraph-&gt;addCFLNode((*it).first, node);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-&gt;begin(); it!= graph-&gt;end(); it++)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; ConstraintNode* node = (*it).second;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span>(ConstraintEdge* edge : node-&gt;getOutEdges())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span> (pag-&gt;isNullPtr(edge-&gt;getSrcID()))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; ConstraintNode* Dst = edge-&gt;getDstNode();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge* DstInEdge : Dst-&gt;getInEdges())</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (DstInEdge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; DerefNode = DstInEdge-&gt;getSrcNode();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; CFLDerefNode = cflGraph-&gt;getGNode(DstInEdge-&gt;getSrcID());</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-&gt;addDummyValNode();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; cflGraph-&gt;addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; cflGraph-&gt;addCFLEdge(CFLDerefNode, cflGraph-&gt;getGNode(edge-&gt;getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; ConstraintNode* Src = edge-&gt;getSrcNode();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge* SrcInEdge : Src-&gt;getInEdges())</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (SrcInEdge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; DerefNode = SrcInEdge-&gt;getSrcNode();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; CFLDerefNode = cflGraph-&gt;getGNode(SrcInEdge-&gt;getSrcID());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-&gt;addDummyValNode();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; cflGraph-&gt;addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; cflGraph-&gt;addCFLEdge(CFLDerefNode, cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(CFLDerefNode-&gt;getId()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">connectVGep</a>(cflGraph, graph, edge-&gt;getSrcNode(), edge-&gt;getDstNode(), 8, pag);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> edgeLabel = edge-&gt;getEdgeKind();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">// Need to get the offset from the Const Edge</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; NormalGepCGEdge *nGepEdge = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;NormalGepCGEdge&gt;(edge);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attr = nGepEdge-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(edgeLabel, attr);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, edgeLabel);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]));</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key], attr);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getSrcID()), cflGraph-&gt;getGNode(edge-&gt;getDstID()), edgeLabel);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge-&gt;getEdgeKind()];</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; key.append(<span class="stringliteral">&quot;bar&quot;</span>);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; cflGraph-&gt;addCFLEdge(cflGraph-&gt;getGNode(edge-&gt;getDstID()), cflGraph-&gt;getGNode(edge-&gt;getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;}</div><div class="ttc" id="classSVF_1_1AliasCFLGraphBuilder_html_a9feeeca8a919b19693e48d6a382c8871"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">SVF::AliasCFLGraphBuilder::connectVGep</a></div><div class="ttdeci">void connectVGep(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR *pag)</div></div>
362
+ <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
363
+ <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
236
364
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
237
365
  <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>
238
366
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">SVF::ConstraintEdge::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
@@ -248,6 +376,66 @@ Additional Inherited Members</h2></td></tr>
248
376
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
249
377
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a91f1f0e8abc8d781eaf8b1a4f025c18e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">SVF::CFLGraphBuilder::externMap</a></div><div class="ttdeci">bool externMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00051">CFLGraphBuilder.h:51</a></div></div>
250
378
  </div><!-- fragment -->
379
+ </div>
380
+ </div>
381
+ <a id="a9feeeca8a919b19693e48d6a382c8871"></a>
382
+ <h2 class="memtitle"><span class="permalink"><a href="#a9feeeca8a919b19693e48d6a382c8871">&#9670;&nbsp;</a></span>connectVGep()</h2>
383
+
384
+ <div class="memitem">
385
+ <div class="memproto">
386
+ <table class="mlabels">
387
+ <tr>
388
+ <td class="mlabels-left">
389
+ <table class="memname">
390
+ <tr>
391
+ <td class="memname">void SVF::AliasCFLGraphBuilder::connectVGep </td>
392
+ <td>(</td>
393
+ <td class="paramtype"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *&#160;</td>
394
+ <td class="paramname"><em>cflGraph</em>, </td>
395
+ </tr>
396
+ <tr>
397
+ <td class="paramkey"></td>
398
+ <td></td>
399
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *&#160;</td>
400
+ <td class="paramname"><em>graph</em>, </td>
401
+ </tr>
402
+ <tr>
403
+ <td class="paramkey"></td>
404
+ <td></td>
405
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
406
+ <td class="paramname"><em>src</em>, </td>
407
+ </tr>
408
+ <tr>
409
+ <td class="paramkey"></td>
410
+ <td></td>
411
+ <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
412
+ <td class="paramname"><em>dst</em>, </td>
413
+ </tr>
414
+ <tr>
415
+ <td class="paramkey"></td>
416
+ <td></td>
417
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
418
+ <td class="paramname"><em>level</em>, </td>
419
+ </tr>
420
+ <tr>
421
+ <td class="paramkey"></td>
422
+ <td></td>
423
+ <td class="paramtype"><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *&#160;</td>
424
+ <td class="paramname"><em>pag</em>&#160;</td>
425
+ </tr>
426
+ <tr>
427
+ <td></td>
428
+ <td>)</td>
429
+ <td></td><td></td>
430
+ </tr>
431
+ </table>
432
+ </td>
433
+ <td class="mlabels-right">
434
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
435
+ </tr>
436
+ </table>
437
+ </div><div class="memdoc">
438
+
251
439
  </div>
252
440
  </div>
253
441
  <hr/>The documentation for this class was generated from the following files:<ul>