svf-tools 1.0.830 → 1.0.832

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 (362) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +220 -228
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +9 -9
  3. package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +8 -8
  8. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
  10. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
  12. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  13. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
  17. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
  22. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +7 -7
  23. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +369 -402
  24. package/SVF-doxygen/html/LLVMUtil_8h.html +3 -10
  25. package/SVF-doxygen/html/LLVMUtil_8h_source.html +350 -392
  26. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  31. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +358 -362
  32. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
  33. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +5 -5
  34. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +13 -13
  36. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
  39. package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
  40. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
  42. package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -39
  43. package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
  44. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  46. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
  48. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +199 -199
  51. package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +4 -4
  52. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +318 -322
  53. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
  54. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +200 -209
  57. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  60. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  64. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
  68. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +8 -8
  69. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
  74. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  75. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  79. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  84. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
  89. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
  90. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  93. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +7 -7
  99. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  102. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  103. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
  104. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1MemObj.html +121 -121
  106. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +28 -28
  108. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
  109. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +336 -340
  112. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
  115. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
  116. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +4 -4
  118. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +6 -6
  119. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +16 -16
  120. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
  121. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
  122. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +2 -4
  123. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
  124. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
  125. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  126. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  128. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  129. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  130. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +196 -196
  131. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +103 -107
  132. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  133. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  134. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  135. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
  136. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
  137. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  139. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  140. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  141. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +526 -669
  142. package/SVF-doxygen/html/namespacemembers_func_g.html +0 -6
  143. package/SVF-doxygen/html/namespacemembers_func_i.html +9 -9
  144. package/SVF-doxygen/html/namespacemembers_g.html +4 -10
  145. package/SVF-doxygen/html/namespacemembers_i.html +7 -7
  146. package/SVF-doxygen/html/search/all_10.js +324 -324
  147. package/SVF-doxygen/html/search/all_11.js +223 -223
  148. package/SVF-doxygen/html/search/all_12.js +553 -553
  149. package/SVF-doxygen/html/search/all_13.js +192 -192
  150. package/SVF-doxygen/html/search/all_14.js +67 -67
  151. package/SVF-doxygen/html/search/all_15.js +167 -167
  152. package/SVF-doxygen/html/search/all_16.js +63 -63
  153. package/SVF-doxygen/html/search/all_17.js +1 -1
  154. package/SVF-doxygen/html/search/all_18.js +1 -1
  155. package/SVF-doxygen/html/search/all_19.js +11 -11
  156. package/SVF-doxygen/html/search/all_1a.js +172 -172
  157. package/SVF-doxygen/html/search/all_7.js +246 -248
  158. package/SVF-doxygen/html/search/all_8.js +198 -198
  159. package/SVF-doxygen/html/search/all_9.js +607 -607
  160. package/SVF-doxygen/html/search/all_a.js +46 -46
  161. package/SVF-doxygen/html/search/all_b.js +26 -26
  162. package/SVF-doxygen/html/search/all_c.js +115 -115
  163. package/SVF-doxygen/html/search/all_d.js +198 -198
  164. package/SVF-doxygen/html/search/all_e.js +207 -207
  165. package/SVF-doxygen/html/search/all_f.js +116 -116
  166. package/SVF-doxygen/html/search/classes_0.js +26 -26
  167. package/SVF-doxygen/html/search/classes_1.js +9 -9
  168. package/SVF-doxygen/html/search/classes_10.js +73 -73
  169. package/SVF-doxygen/html/search/classes_11.js +15 -15
  170. package/SVF-doxygen/html/search/classes_12.js +2 -2
  171. package/SVF-doxygen/html/search/classes_13.js +10 -10
  172. package/SVF-doxygen/html/search/classes_14.js +14 -14
  173. package/SVF-doxygen/html/search/classes_15.js +1 -1
  174. package/SVF-doxygen/html/search/classes_2.js +80 -80
  175. package/SVF-doxygen/html/search/classes_3.js +37 -37
  176. package/SVF-doxygen/html/search/classes_4.js +9 -9
  177. package/SVF-doxygen/html/search/classes_5.js +28 -28
  178. package/SVF-doxygen/html/search/classes_6.js +104 -104
  179. package/SVF-doxygen/html/search/classes_7.js +34 -34
  180. package/SVF-doxygen/html/search/classes_8.js +56 -56
  181. package/SVF-doxygen/html/search/classes_9.js +1 -1
  182. package/SVF-doxygen/html/search/classes_a.js +12 -12
  183. package/SVF-doxygen/html/search/classes_b.js +29 -29
  184. package/SVF-doxygen/html/search/classes_c.js +6 -6
  185. package/SVF-doxygen/html/search/classes_d.js +18 -18
  186. package/SVF-doxygen/html/search/classes_e.js +36 -36
  187. package/SVF-doxygen/html/search/classes_f.js +25 -25
  188. package/SVF-doxygen/html/search/defines_0.js +3 -3
  189. package/SVF-doxygen/html/search/defines_1.js +2 -2
  190. package/SVF-doxygen/html/search/defines_2.js +30 -30
  191. package/SVF-doxygen/html/search/defines_3.js +21 -21
  192. package/SVF-doxygen/html/search/defines_4.js +2 -2
  193. package/SVF-doxygen/html/search/defines_5.js +4 -4
  194. package/SVF-doxygen/html/search/defines_6.js +2 -2
  195. package/SVF-doxygen/html/search/defines_7.js +5 -5
  196. package/SVF-doxygen/html/search/defines_8.js +11 -11
  197. package/SVF-doxygen/html/search/defines_9.js +9 -9
  198. package/SVF-doxygen/html/search/defines_a.js +2 -2
  199. package/SVF-doxygen/html/search/defines_b.js +1 -1
  200. package/SVF-doxygen/html/search/defines_c.js +3 -3
  201. package/SVF-doxygen/html/search/defines_d.js +2 -2
  202. package/SVF-doxygen/html/search/defines_e.js +7 -7
  203. package/SVF-doxygen/html/search/defines_f.js +3 -3
  204. package/SVF-doxygen/html/search/enums_0.js +3 -3
  205. package/SVF-doxygen/html/search/enums_1.js +2 -2
  206. package/SVF-doxygen/html/search/enums_10.js +1 -1
  207. package/SVF-doxygen/html/search/enums_11.js +1 -1
  208. package/SVF-doxygen/html/search/enums_2.js +8 -8
  209. package/SVF-doxygen/html/search/enums_3.js +1 -1
  210. package/SVF-doxygen/html/search/enums_4.js +3 -3
  211. package/SVF-doxygen/html/search/enums_5.js +1 -1
  212. package/SVF-doxygen/html/search/enums_6.js +2 -2
  213. package/SVF-doxygen/html/search/enums_7.js +2 -2
  214. package/SVF-doxygen/html/search/enums_8.js +4 -4
  215. package/SVF-doxygen/html/search/enums_9.js +1 -1
  216. package/SVF-doxygen/html/search/enums_a.js +1 -1
  217. package/SVF-doxygen/html/search/enums_b.js +7 -7
  218. package/SVF-doxygen/html/search/enums_c.js +1 -1
  219. package/SVF-doxygen/html/search/enums_d.js +4 -4
  220. package/SVF-doxygen/html/search/enums_e.js +2 -2
  221. package/SVF-doxygen/html/search/enums_f.js +4 -4
  222. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  223. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  224. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  225. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  226. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  227. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  228. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  229. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  230. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  231. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  232. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  233. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  234. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  235. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  236. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  237. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  238. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  239. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  240. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  241. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  242. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  243. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  244. package/SVF-doxygen/html/search/files_0.js +13 -13
  245. package/SVF-doxygen/html/search/files_1.js +7 -7
  246. package/SVF-doxygen/html/search/files_10.js +8 -8
  247. package/SVF-doxygen/html/search/files_11.js +8 -8
  248. package/SVF-doxygen/html/search/files_12.js +2 -2
  249. package/SVF-doxygen/html/search/files_2.js +55 -55
  250. package/SVF-doxygen/html/search/files_3.js +14 -14
  251. package/SVF-doxygen/html/search/files_4.js +5 -5
  252. package/SVF-doxygen/html/search/files_5.js +13 -13
  253. package/SVF-doxygen/html/search/files_6.js +9 -9
  254. package/SVF-doxygen/html/search/files_7.js +14 -14
  255. package/SVF-doxygen/html/search/files_8.js +13 -13
  256. package/SVF-doxygen/html/search/files_9.js +18 -18
  257. package/SVF-doxygen/html/search/files_a.js +3 -3
  258. package/SVF-doxygen/html/search/files_b.js +2 -2
  259. package/SVF-doxygen/html/search/files_c.js +20 -20
  260. package/SVF-doxygen/html/search/files_d.js +4 -4
  261. package/SVF-doxygen/html/search/files_e.js +62 -62
  262. package/SVF-doxygen/html/search/files_f.js +8 -8
  263. package/SVF-doxygen/html/search/functions_0.js +13 -13
  264. package/SVF-doxygen/html/search/functions_1.js +360 -360
  265. package/SVF-doxygen/html/search/functions_10.js +140 -140
  266. package/SVF-doxygen/html/search/functions_11.js +139 -139
  267. package/SVF-doxygen/html/search/functions_12.js +288 -288
  268. package/SVF-doxygen/html/search/functions_13.js +59 -59
  269. package/SVF-doxygen/html/search/functions_14.js +39 -39
  270. package/SVF-doxygen/html/search/functions_15.js +71 -71
  271. package/SVF-doxygen/html/search/functions_16.js +32 -32
  272. package/SVF-doxygen/html/search/functions_17.js +3 -3
  273. package/SVF-doxygen/html/search/functions_18.js +172 -172
  274. package/SVF-doxygen/html/search/functions_2.js +89 -89
  275. package/SVF-doxygen/html/search/functions_3.js +258 -258
  276. package/SVF-doxygen/html/search/functions_4.js +78 -78
  277. package/SVF-doxygen/html/search/functions_5.js +53 -53
  278. package/SVF-doxygen/html/search/functions_6.js +60 -60
  279. package/SVF-doxygen/html/search/functions_7.js +855 -857
  280. package/SVF-doxygen/html/search/functions_8.js +149 -149
  281. package/SVF-doxygen/html/search/functions_9.js +423 -423
  282. package/SVF-doxygen/html/search/functions_a.js +30 -30
  283. package/SVF-doxygen/html/search/functions_b.js +2 -2
  284. package/SVF-doxygen/html/search/functions_c.js +25 -25
  285. package/SVF-doxygen/html/search/functions_d.js +79 -79
  286. package/SVF-doxygen/html/search/functions_e.js +35 -35
  287. package/SVF-doxygen/html/search/functions_f.js +56 -56
  288. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  289. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  290. package/SVF-doxygen/html/search/related_0.js +2 -2
  291. package/SVF-doxygen/html/search/related_1.js +2 -2
  292. package/SVF-doxygen/html/search/related_2.js +2 -2
  293. package/SVF-doxygen/html/search/related_3.js +2 -2
  294. package/SVF-doxygen/html/search/related_4.js +2 -2
  295. package/SVF-doxygen/html/search/related_5.js +1 -1
  296. package/SVF-doxygen/html/search/related_6.js +2 -2
  297. package/SVF-doxygen/html/search/related_7.js +4 -4
  298. package/SVF-doxygen/html/search/related_8.js +2 -2
  299. package/SVF-doxygen/html/search/related_9.js +4 -4
  300. package/SVF-doxygen/html/search/related_a.js +19 -19
  301. package/SVF-doxygen/html/search/related_b.js +4 -4
  302. package/SVF-doxygen/html/search/related_c.js +2 -2
  303. package/SVF-doxygen/html/search/related_d.js +12 -12
  304. package/SVF-doxygen/html/search/related_e.js +2 -2
  305. package/SVF-doxygen/html/search/related_f.js +2 -2
  306. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  307. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  308. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  309. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  310. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  311. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  312. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  313. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  314. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  315. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  316. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  317. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  318. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  319. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  320. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  321. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  322. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  323. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  324. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  325. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  326. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  327. package/SVF-doxygen/html/search/variables_0.js +151 -151
  328. package/SVF-doxygen/html/search/variables_1.js +75 -75
  329. package/SVF-doxygen/html/search/variables_10.js +97 -97
  330. package/SVF-doxygen/html/search/variables_11.js +44 -44
  331. package/SVF-doxygen/html/search/variables_12.js +92 -92
  332. package/SVF-doxygen/html/search/variables_13.js +76 -76
  333. package/SVF-doxygen/html/search/variables_14.js +14 -14
  334. package/SVF-doxygen/html/search/variables_15.js +48 -48
  335. package/SVF-doxygen/html/search/variables_16.js +9 -9
  336. package/SVF-doxygen/html/search/variables_17.js +1 -1
  337. package/SVF-doxygen/html/search/variables_18.js +2 -2
  338. package/SVF-doxygen/html/search/variables_2.js +38 -38
  339. package/SVF-doxygen/html/search/variables_3.js +142 -142
  340. package/SVF-doxygen/html/search/variables_4.js +55 -55
  341. package/SVF-doxygen/html/search/variables_5.js +37 -37
  342. package/SVF-doxygen/html/search/variables_6.js +66 -66
  343. package/SVF-doxygen/html/search/variables_7.js +34 -34
  344. package/SVF-doxygen/html/search/variables_8.js +7 -7
  345. package/SVF-doxygen/html/search/variables_9.js +78 -78
  346. package/SVF-doxygen/html/search/variables_a.js +4 -4
  347. package/SVF-doxygen/html/search/variables_b.js +10 -10
  348. package/SVF-doxygen/html/search/variables_c.js +45 -45
  349. package/SVF-doxygen/html/search/variables_d.js +56 -56
  350. package/SVF-doxygen/html/search/variables_e.js +123 -123
  351. package/SVF-doxygen/html/search/variables_f.js +30 -30
  352. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  353. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  354. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  355. package/package.json +1 -1
  356. package/svf/lib/MemoryModel/AccessPath.cpp +3 -12
  357. package/svf/lib/MemoryModel/PointerAnalysis.cpp +0 -3
  358. package/svf/lib/SVFIR/SVFType.cpp +1 -2
  359. package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -5
  360. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +1 -34
  361. package/svf-llvm/lib/LLVMUtil.cpp +1 -32
  362. package/svf-llvm/lib/SymbolTableBuilder.cpp +8 -8
@@ -947,25 +947,25 @@ Private Member Functions</h2></td></tr>
947
947
  </table>
948
948
  </div><div class="memdoc">
949
949
 
950
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00469">469</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
951
- <div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div>
952
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div>
953
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; feit = vfns.end(); fit != feit; ++fit)</div>
954
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
955
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
956
- <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; callee = callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
957
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee) &gt; 0)</div>
958
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">continue</span>;</div>
959
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">arg_size</a>() ||</div>
960
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#abe38a348db833b797f32ecc05f67100c">isVarArg</a>() &amp;&amp; callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">isVarArg</a>()))</div>
961
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div>
962
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; newEdges[cs].insert(callee);</div>
963
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
964
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
965
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(callBlockNode, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(),callee);</div>
966
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div>
967
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
968
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}</div>
950
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00466">466</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
951
+ <div class="fragment"><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;{</div>
952
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div>
953
+ <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; feit = vfns.end(); fit != feit; ++fit)</div>
954
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; {</div>
955
+ <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
956
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; callee = callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
957
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee) &gt; 0)</div>
958
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">continue</span>;</div>
959
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">arg_size</a>() ||</div>
960
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#abe38a348db833b797f32ecc05f67100c">isVarArg</a>() &amp;&amp; callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">isVarArg</a>()))</div>
961
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div>
962
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; newEdges[cs].insert(callee);</div>
963
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
964
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
965
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(callBlockNode, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(),callee);</div>
966
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div>
967
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div>
968
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div>
969
969
  </div><!-- fragment -->
970
970
  </div>
971
971
  </div>
@@ -1164,11 +1164,8 @@ Private Member Functions</h2></td></tr>
1164
1164
  <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
1165
1165
  <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>();</div>
1166
1166
  <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
1167
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// TODO: getPtrElementType to be removed</span></div>
1168
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* ptType = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
1169
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">printFlattenFields</a>(ptType-&gt;getPtrElementType());</div>
1170
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div>
1171
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div>
1167
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
1168
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div>
1172
1169
  </div><!-- fragment -->
1173
1170
  </div>
1174
1171
  </div>
@@ -1238,65 +1235,65 @@ Private Member Functions</h2></td></tr>
1238
1235
  <p>Dump points-to of top-level pointers (<a class="el" href="classSVF_1_1ValVar.html">ValVar</a>) </p>
1239
1236
  <p>print the points-to set of node which has the maximum pts size.</p>
1240
1237
 
1241
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00260">260</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
1242
- <div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div>
1243
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
1244
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div>
1245
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt; (node))</div>
1246
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div>
1247
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;##&lt;Dummy Obj &gt; id:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
1248
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
1249
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(node) &amp;&amp; !<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
1250
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div>
1251
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
1252
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
1253
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;##&lt;&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() &lt;&lt; <span class="stringliteral">&quot;&gt; &quot;</span>;</div>
1254
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Source Loc: &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
1255
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
1256
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
1257
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nPtr &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1258
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
1259
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
1260
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div>
1261
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n\n&quot;</span>;</div>
1262
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
1263
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div>
1264
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
1265
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: { &quot;</span>;</div>
1266
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit;</div>
1267
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; ++it)</div>
1268
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1269
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n\n&quot;</span>;</div>
1270
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div>
1271
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
1272
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div>
1273
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
1274
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
1275
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
1276
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
1277
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ObjVar&gt;(node) == <span class="keyword">false</span>)</div>
1278
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">continue</span>;</div>
1279
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
1280
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;!!Target NodeID &quot;</span> &lt;&lt; ptd &lt;&lt; <span class="stringliteral">&quot;\t [&quot;</span>;</div>
1281
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptd);</div>
1282
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div>
1283
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;DummyVal\n&quot;</span>;</div>
1284
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
1285
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Dummy Obj id: &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
1286
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">else</span></div>
1287
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
1288
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
1289
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; {</div>
1290
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
1291
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div>
1292
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;&quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() &lt;&lt; <span class="stringliteral">&quot;&gt; &quot;</span>;</div>
1293
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Source Loc: &quot;</span></div>
1294
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;] \n&quot;</span>;</div>
1295
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
1296
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
1297
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
1298
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div>
1299
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;}</div>
1238
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00257">257</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
1239
+ <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div>
1240
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
1241
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div>
1242
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt; (node))</div>
1243
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div>
1244
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;##&lt;Dummy Obj &gt; id:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
1245
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
1246
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(node) &amp;&amp; !<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
1247
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div>
1248
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
1249
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
1250
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;##&lt;&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() &lt;&lt; <span class="stringliteral">&quot;&gt; &quot;</span>;</div>
1251
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Source Loc: &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
1252
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
1253
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
1254
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nPtr &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1255
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
1256
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
1257
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
1258
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n\n&quot;</span>;</div>
1259
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
1260
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">else</span></div>
1261
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
1262
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: { &quot;</span>;</div>
1263
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit;</div>
1264
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; ++it)</div>
1265
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1266
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n\n&quot;</span>;</div>
1267
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
1268
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
1269
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div>
1270
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
1271
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
1272
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
1273
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
1274
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ObjVar&gt;(node) == <span class="keyword">false</span>)</div>
1275
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">continue</span>;</div>
1276
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
1277
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;!!Target NodeID &quot;</span> &lt;&lt; ptd &lt;&lt; <span class="stringliteral">&quot;\t [&quot;</span>;</div>
1278
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptd);</div>
1279
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div>
1280
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;DummyVal\n&quot;</span>;</div>
1281
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
1282
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Dummy Obj id: &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;]\n&quot;</span>;</div>
1283
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">else</span></div>
1284
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div>
1285
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
1286
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
1287
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
1288
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
1289
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;&quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>() &lt;&lt; <span class="stringliteral">&quot;&gt; &quot;</span>;</div>
1290
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Source Loc: &quot;</span></div>
1291
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;] \n&quot;</span>;</div>
1292
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
1293
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
1294
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
1295
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
1296
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div>
1300
1297
  </div><!-- fragment -->
1301
1298
  </div>
1302
1299
  </div>
@@ -2186,11 +2183,11 @@ Private Member Functions</h2></td></tr>
2186
2183
  </table>
2187
2184
  </div><div class="memdoc">
2188
2185
 
2189
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00434">434</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2190
- <div class="fragment"><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;{</div>
2191
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#a0ce9117288d9e0b498f128217fda0cca">csHasVFnsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
2192
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; vfns = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">getCSVFsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
2193
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;}</div>
2186
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00431">431</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2187
+ <div class="fragment"><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;{</div>
2188
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#a0ce9117288d9e0b498f128217fda0cca">csHasVFnsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
2189
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; vfns = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">getCSVFsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
2190
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;}</div>
2194
2191
  </div><!-- fragment -->
2195
2192
  </div>
2196
2193
  </div>
@@ -2226,28 +2223,28 @@ Private Member Functions</h2></td></tr>
2226
2223
  </table>
2227
2224
  </div><div class="memdoc">
2228
2225
 
2229
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00443">443</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2230
- <div class="fragment"><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;{</div>
2231
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
2232
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#aff7363feebc20267dad7230666b583b1">csHasVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
2233
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
2234
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFGlobalValue*&gt;</a> vtbls;</div>
2235
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &amp;chaVtbls = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#ae90f9a2152ab07aa0df16badd733f1fd">getCSVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
2236
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
2237
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div>
2238
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *ptdnode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
2239
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (ptdnode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
2240
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div>
2241
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(ptdnode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
2242
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div>
2243
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">if</span> (chaVtbls.find(vtbl) != chaVtbls.end())</div>
2244
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; vtbls.insert(vtbl);</div>
2245
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div>
2246
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div>
2247
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
2248
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#aae511b2ee7c2c7ea7be70c7884e92021">getVFnsFromVtbls</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()), vtbls, vfns);</div>
2249
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
2250
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;}</div>
2226
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00440">440</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2227
+ <div class="fragment"><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;{</div>
2228
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
2229
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#aff7363feebc20267dad7230666b583b1">csHasVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>())))</div>
2230
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
2231
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFGlobalValue*&gt;</a> vtbls;</div>
2232
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a340a9e77adc2bbfdee79e22da9ead234">VTableSet</a> &amp;chaVtbls = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#ae90f9a2152ab07aa0df16badd733f1fd">getCSVtblsBasedonCHA</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()));</div>
2233
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), eit = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>(); it != eit; ++it)</div>
2234
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div>
2235
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *ptdnode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it);</div>
2236
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span> (ptdnode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
2237
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div>
2238
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a> *vtbl = SVFUtil::dyn_cast&lt;SVFGlobalValue&gt;(ptdnode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
2239
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div>
2240
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">if</span> (chaVtbls.find(vtbl) != chaVtbls.end())</div>
2241
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; vtbls.insert(vtbl);</div>
2242
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
2243
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
2244
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
2245
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a>-&gt;<a class="code" href="classSVF_1_1CommonCHGraph.html#aae511b2ee7c2c7ea7be70c7884e92021">getVFnsFromVtbls</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()), vtbls, vfns);</div>
2246
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div>
2247
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div>
2251
2248
  </div><!-- fragment -->
2252
2249
  </div>
2253
2250
  </div>
@@ -2660,35 +2657,35 @@ Private Member Functions</h2></td></tr>
2660
2657
  </div><div class="memdoc">
2661
2658
  <p>Print all indirect callsites </p>
2662
2659
 
2663
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00353">353</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2664
- <div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;{</div>
2665
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;==================Function Pointer Targets==================\n&quot;</span>;</div>
2666
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>&amp; callEdges = <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>();</div>
2667
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; CallEdgeMap::const_iterator it = callEdges.begin();</div>
2668
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; CallEdgeMap::const_iterator eit = callEdges.end();</div>
2669
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
2670
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div>
2671
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = it-&gt;first;</div>
2672
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a>&amp; targets = it-&gt;second;</div>
2673
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a>(cs, targets);</div>
2674
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div>
2675
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
2676
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>&amp; indCS = <a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>();</div>
2677
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; CallSiteToFunPtrMap::const_iterator csIt = indCS.begin();</div>
2678
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; CallSiteToFunPtrMap::const_iterator csEit = indCS.end();</div>
2679
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (; csIt != csEit; ++csIt)</div>
2680
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
2681
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = csIt-&gt;first;</div>
2682
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">hasIndCSCallees</a>(cs) == <span class="keyword">false</span>)</div>
2683
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div>
2684
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nNodeID: &quot;</span> &lt;&lt; csIt-&gt;second;</div>
2685
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nCallSite: &quot;</span>;</div>
2686
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
2687
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\tLocation: &quot;</span> &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
2688
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t!!!has no targets!!!\n&quot;</span>;</div>
2689
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div>
2690
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
2691
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}</div>
2660
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00350">350</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2661
+ <div class="fragment"><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div>
2662
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;==================Function Pointer Targets==================\n&quot;</span>;</div>
2663
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a>&amp; callEdges = <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>();</div>
2664
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; CallEdgeMap::const_iterator it = callEdges.begin();</div>
2665
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; CallEdgeMap::const_iterator eit = callEdges.end();</div>
2666
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
2667
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div>
2668
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = it-&gt;first;</div>
2669
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a>&amp; targets = it-&gt;second;</div>
2670
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a>(cs, targets);</div>
2671
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
2672
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
2673
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a>&amp; indCS = <a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>();</div>
2674
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; CallSiteToFunPtrMap::const_iterator csIt = indCS.begin();</div>
2675
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; CallSiteToFunPtrMap::const_iterator csEit = indCS.end();</div>
2676
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">for</span> (; csIt != csEit; ++csIt)</div>
2677
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div>
2678
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = csIt-&gt;first;</div>
2679
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">hasIndCSCallees</a>(cs) == <span class="keyword">false</span>)</div>
2680
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
2681
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nNodeID: &quot;</span> &lt;&lt; csIt-&gt;second;</div>
2682
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nCallSite: &quot;</span>;</div>
2683
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
2684
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\tLocation: &quot;</span> &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
2685
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t!!!has no targets!!!\n&quot;</span>;</div>
2686
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div>
2687
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
2688
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div>
2692
2689
  </div><!-- fragment -->
2693
2690
  </div>
2694
2691
  </div>
@@ -2721,31 +2718,31 @@ Private Member Functions</h2></td></tr>
2721
2718
  <p>Print targets of a function pointer. </p>
2722
2719
  <p>Print indirect call targets at an indirect callsite </p>
2723
2720
 
2724
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00324">324</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2725
- <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div>
2726
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nNodeID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#adbceaf90526e44192c2fa4aac5468f5f">getFunPtr</a>(cs);</div>
2727
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nCallSite: &quot;</span>;</div>
2728
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
2729
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\tLocation: &quot;</span> &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
2730
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t with Targets: &quot;</span>;</div>
2731
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
2732
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (!targets.empty())</div>
2733
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; {</div>
2734
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; FunctionSet::const_iterator fit = targets.begin();</div>
2735
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; FunctionSet::const_iterator feit = targets.end();</div>
2736
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span> (; fit != feit; ++fit)</div>
2737
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
2738
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
2739
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t&quot;</span> &lt;&lt; callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
2740
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
2741
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
2742
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">else</span></div>
2743
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div>
2744
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\tNo Targets!&quot;</span>;</div>
2745
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div>
2746
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div>
2747
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2748
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div>
2721
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00321">321</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2722
+ <div class="fragment"><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;{</div>
2723
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nNodeID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#adbceaf90526e44192c2fa4aac5468f5f">getFunPtr</a>(cs);</div>
2724
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\nCallSite: &quot;</span>;</div>
2725
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
2726
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\tLocation: &quot;</span> &lt;&lt; cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div>
2727
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t with Targets: &quot;</span>;</div>
2728
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
2729
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (!targets.empty())</div>
2730
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; {</div>
2731
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; FunctionSet::const_iterator fit = targets.begin();</div>
2732
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; FunctionSet::const_iterator feit = targets.end();</div>
2733
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span> (; fit != feit; ++fit)</div>
2734
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
2735
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div>
2736
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t&quot;</span> &lt;&lt; callee-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>();</div>
2737
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
2738
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div>
2739
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">else</span></div>
2740
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div>
2741
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\tNo Targets!&quot;</span>;</div>
2742
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
2743
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; </div>
2744
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2745
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div>
2749
2746
  </div><!-- fragment -->
2750
2747
  </div>
2751
2748
  </div>
@@ -2894,17 +2891,17 @@ Private Member Functions</h2></td></tr>
2894
2891
 
2895
2892
  <p>Resolve cpp indirect call edges. </p>
2896
2893
 
2897
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00491">491</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2898
- <div class="fragment"><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div>
2899
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>() &amp;&amp; <span class="stringliteral">&quot;not cpp virtual call&quot;</span>);</div>
2900
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
2901
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> vfns;</div>
2902
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">Options::ConnectVCallOnCHA</a>())</div>
2903
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cs, vfns);</div>
2904
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">else</span></div>
2905
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">getVFnsFromPts</a>(cs, target, vfns);</div>
2906
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cs, vfns, newEdges);</div>
2907
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;}</div>
2894
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00488">488</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2895
+ <div class="fragment"><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;{</div>
2896
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>() &amp;&amp; <span class="stringliteral">&quot;not cpp virtual call&quot;</span>);</div>
2897
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; </div>
2898
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> vfns;</div>
2899
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">Options::ConnectVCallOnCHA</a>())</div>
2900
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cs, vfns);</div>
2901
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">else</span></div>
2902
+ <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">getVFnsFromPts</a>(cs, target, vfns);</div>
2903
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cs, vfns, newEdges);</div>
2904
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;}</div>
2908
2905
  </div><!-- fragment -->
2909
2906
  </div>
2910
2907
  </div>
@@ -2952,47 +2949,47 @@ Private Member Functions</h2></td></tr>
2952
2949
  <p>Resolve indirect calls </p>
2953
2950
  <p>discover indirect pointer target</p>
2954
2951
 
2955
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00388">388</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2956
- <div class="fragment"><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;{</div>
2957
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
2958
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cs) &amp;&amp; <span class="stringliteral">&quot;not an indirect callsite?&quot;</span>);</div>
2959
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
2960
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; ii != ie; ii++)</div>
2961
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div>
2962
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; </div>
2963
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() &gt;= <a class="code" href="classSVF_1_1Options.html#aa5bae1db07c401517c1c0f8fd9f2deef">Options::IndirectCallLimit</a>())</div>
2964
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
2965
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac71522e8c55f84cfc6c13a0ddff18436">wrnMsg</a>(<span class="stringliteral">&quot;Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit&quot;</span>);</div>
2966
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span>;</div>
2967
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
2968
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
2969
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div>
2970
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div>
2971
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div>
2972
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
2973
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div>
2974
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div>
2975
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* calleefun = SVFUtil::cast&lt;SVFFunction&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>());</div>
2976
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = calleefun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
2952
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00385">385</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2953
+ <div class="fragment"><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;{</div>
2954
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div>
2955
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cs) &amp;&amp; <span class="stringliteral">&quot;not an indirect callsite?&quot;</span>);</div>
2956
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = target.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = target.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
2957
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; ii != ie; ii++)</div>
2958
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div>
2959
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
2960
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() &gt;= <a class="code" href="classSVF_1_1Options.html#aa5bae1db07c401517c1c0f8fd9f2deef">Options::IndirectCallLimit</a>())</div>
2961
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div>
2962
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac71522e8c55f84cfc6c13a0ddff18436">wrnMsg</a>(<span class="stringliteral">&quot;Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit&quot;</span>);</div>
2963
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span>;</div>
2964
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div>
2965
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
2966
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div>
2967
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; {</div>
2968
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div>
2969
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
2970
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div>
2971
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {</div>
2972
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* calleefun = SVFUtil::cast&lt;SVFFunction&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>());</div>
2973
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = calleefun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">getDefFunForMultipleModule</a>();</div>
2974
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
2975
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#af6ccc943516cedd7d8cd1de09d8f554e">SVFUtil::matchArgs</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>(), callee) == <span class="keyword">false</span>)</div>
2976
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">continue</span>;</div>
2977
2977
  <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
2978
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#af6ccc943516cedd7d8cd1de09d8f554e">SVFUtil::matchArgs</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>(), callee) == <span class="keyword">false</span>)</div>
2979
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">continue</span>;</div>
2980
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; </div>
2981
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee))</div>
2982
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div>
2983
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; newEdges[cs].insert(callee);</div>
2984
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
2985
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
2986
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div>
2987
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div>
2988
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// The indirect call is maintained by ourself, We may update llvm&#39;s when we need to</span></div>
2989
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="comment">//CallGraphNode* callgraphNode = callgraph-&gt;getOrInsertFunction(cs.getCaller());</span></div>
2990
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="comment">//callgraphNode-&gt;addCalledFunction(cs,callgraph-&gt;getOrInsertFunction(callee));</span></div>
2991
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
2992
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
2993
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div>
2994
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
2995
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;}</div>
2978
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee))</div>
2979
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
2980
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; newEdges[cs].insert(callee);</div>
2981
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div>
2982
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
2983
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div>
2984
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div>
2985
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// The indirect call is maintained by ourself, We may update llvm&#39;s when we need to</span></div>
2986
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">//CallGraphNode* callgraphNode = callgraph-&gt;getOrInsertFunction(cs.getCaller());</span></div>
2987
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">//callgraphNode-&gt;addCalledFunction(cs,callgraph-&gt;getOrInsertFunction(callee));</span></div>
2988
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
2989
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div>
2990
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
2991
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
2992
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;}</div>
2996
2993
  </div><!-- fragment -->
2997
2994
  </div>
2998
2995
  </div>
@@ -3053,58 +3050,58 @@ Private Member Functions</h2></td></tr>
3053
3050
  </div><div class="memdoc">
3054
3051
  <p>Pointer analysis validator </p>
3055
3052
 
3056
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00575">575</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
3057
- <div class="fragment"><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;{</div>
3058
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; </div>
3059
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
3060
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div>
3061
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span>(!checkFun-&gt;isUncalledFunction())</div>
3062
- <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() &lt;&lt; <span class="stringliteral">&quot;] Checking &quot;</span> &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
3063
- <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div>
3064
- <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
3065
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
3066
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode-&gt;getCallSite();</div>
3067
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
3068
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; {</div>
3069
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> call = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">getSVFCallSite</a>(svfInst);</div>
3070
- <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; assert(call.<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == 2</div>
3071
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; &amp;&amp; <span class="stringliteral">&quot;arguments should be two pointers!!&quot;</span>);</div>
3072
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(0);</div>
3073
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(1);</div>
3074
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
3075
- <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; </div>
3076
- <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div>
3077
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a32c6f12ce8bc0554dbb6aafa36f9a235">aliasTestFailMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a651cc82379c2d18cc2f69f25b2ae08db">aliasTestFailMayAliasMangled</a>)</div>
3078
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div>
3079
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// change to must alias when our analysis support it</span></div>
3080
- <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
3081
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; expectedFailure = <span class="keyword">true</span>;</div>
3082
- <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div>
3083
- <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a18347e41bc66b16e3f42c7c52811ad42">aliasTestFailNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">aliasTestFailNoAliasMangled</a>)</div>
3084
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div>
3085
- <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// change to partial alias when our analysis support it</span></div>
3086
- <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">AliasResult::PartialAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3087
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; expectedFailure = <span class="keyword">true</span>;</div>
3088
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; }</div>
3089
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">else</span></div>
3090
- <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not supported alias check!!&quot;</span>);</div>
3053
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00572">572</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
3054
+ <div class="fragment"><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;{</div>
3055
+ <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; </div>
3056
+ <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
3057
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; {</div>
3058
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">if</span>(!checkFun-&gt;isUncalledFunction())</div>
3059
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() &lt;&lt; <span class="stringliteral">&quot;] Checking &quot;</span> &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
3060
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; </div>
3061
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
3062
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
3063
+ <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode-&gt;getCallSite();</div>
3064
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
3065
+ <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
3066
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> call = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">getSVFCallSite</a>(svfInst);</div>
3067
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; assert(call.<a class="code" href="classSVF_1_1CallSite.html#a2a1904e6f381a0f8ac30265f2dfc48c8">arg_size</a>() == 2</div>
3068
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; &amp;&amp; <span class="stringliteral">&quot;arguments should be two pointers!!&quot;</span>);</div>
3069
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(0);</div>
3070
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = call.<a class="code" href="classSVF_1_1CallSite.html#a93c083aa8f3f3ef28fe80e9aaf70dfb5">getArgOperand</a>(1);</div>
3071
+ <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
3072
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; </div>
3073
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordtype">bool</span> expectedFailure = <span class="keyword">false</span>;</div>
3074
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a32c6f12ce8bc0554dbb6aafa36f9a235">aliasTestFailMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a651cc82379c2d18cc2f69f25b2ae08db">aliasTestFailMayAliasMangled</a>)</div>
3075
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; {</div>
3076
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">// change to must alias when our analysis support it</span></div>
3077
+ <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
3078
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; expectedFailure = <span class="keyword">true</span>;</div>
3079
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div>
3080
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a18347e41bc66b16e3f42c7c52811ad42">aliasTestFailNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">aliasTestFailNoAliasMangled</a>)</div>
3081
+ <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; {</div>
3082
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// change to partial alias when our analysis support it</span></div>
3083
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aa03eb20fd81629154d6c346763ea64d6">AliasResult::PartialAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3084
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; expectedFailure = <span class="keyword">true</span>;</div>
3085
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div>
3086
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">else</span></div>
3087
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not supported alias check!!&quot;</span>);</div>
3088
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; </div>
3089
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
3090
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
3091
3091
  <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; </div>
3092
- <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
3093
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
3094
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; </div>
3095
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">if</span> (expectedFailure)</div>
3096
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t EXPECTED-FAILURE :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3097
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; &lt;&lt; call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3098
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">else</span></div>
3099
- <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {</div>
3100
- <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">&quot;\t UNEXPECTED FAILURE :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3101
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; &lt;&lt; call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3102
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;test case failed!&quot;</span>);</div>
3103
- <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div>
3104
- <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div>
3105
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
3106
- <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
3107
- <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;}</div>
3092
+ <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span> (expectedFailure)</div>
3093
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t EXPECTED-FAILURE :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3094
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; &lt;&lt; call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3095
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">else</span></div>
3096
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div>
3097
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">&quot;\t UNEXPECTED FAILURE :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3098
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; &lt;&lt; call.<a class="code" href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">getInstruction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3099
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;test case failed!&quot;</span>);</div>
3100
+ <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div>
3101
+ <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
3102
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div>
3103
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div>
3104
+ <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;}</div>
3108
3105
  </div><!-- fragment -->
3109
3106
  </div>
3110
3107
  </div>
@@ -3133,70 +3130,70 @@ Private Member Functions</h2></td></tr>
3133
3130
  </div><div class="memdoc">
3134
3131
  <p>Find the alias check functions annotated in the C files check whether the alias analysis results consistent with the alias check function itself </p>
3135
3132
 
3136
- <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00507">507</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
3137
- <div class="fragment"><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;{</div>
3138
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// check for must alias cases, whether our alias analysis produce the correct results</span></div>
3139
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
3140
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; {</div>
3141
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">if</span>(!checkFun-&gt;isUncalledFunction())</div>
3142
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() &lt;&lt; <span class="stringliteral">&quot;] Checking &quot;</span> &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
3143
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
3144
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
3145
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
3146
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode-&gt;getCallSite();</div>
3147
- <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
3148
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div>
3149
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
3150
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(svfInst);</div>
3151
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; assert(cs.getNumArgOperands() == 2</div>
3152
- <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; &amp;&amp; <span class="stringliteral">&quot;arguments should be two pointers!!&quot;</span>);</div>
3153
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = cs.getArgOperand(0);</div>
3154
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = cs.getArgOperand(1);</div>
3155
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
3156
- <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; </div>
3157
- <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordtype">bool</span> checkSuccessful = <span class="keyword">false</span>;</div>
3158
- <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">aliasTestMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a13ce6b930a35877f17bffd4b89e22654">aliasTestMayAliasMangled</a>)</div>
3159
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div>
3160
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3161
- <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3162
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div>
3163
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#ac353221cc7aced590dcf3550a24b1570">aliasTestNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0e68883e2ee328315af29e59bb2008cd">aliasTestNoAliasMangled</a>)</div>
3164
- <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; {</div>
3165
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
3166
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3167
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div>
3168
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7477a4301d548b93958e57df389cbba0">aliasTestMustAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aec884481726cfaf19c4ab8ec8d9195b7">aliasTestMustAliasMangled</a>)</div>
3169
- <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; {</div>
3170
- <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="comment">// change to must alias when our analysis support it</span></div>
3171
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3172
- <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3173
- <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div>
3174
- <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a83b0a51d88fa7aadff6e9267765d07a5">aliasTestPartialAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">aliasTestPartialAliasMangled</a>)</div>
3175
- <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div>
3176
- <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// change to partial alias when our analysis support it</span></div>
3177
- <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>)</div>
3178
- <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3179
- <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div>
3180
- <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">else</span></div>
3181
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not supported alias check!!&quot;</span>);</div>
3133
+ <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00504">504</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
3134
+ <div class="fragment"><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;{</div>
3135
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// check for must alias cases, whether our alias analysis produce the correct results</span></div>
3136
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* checkFun = <a class="code" href="classSVF_1_1PointerAnalysis.html#a7e8b3f6843e5ea75fd189162d2cd60a5">svfMod</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#afdb11f5fcbb6e7ed2689e3387bb78850">getSVFFunction</a>(fun))</div>
3137
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div>
3138
+ <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span>(!checkFun-&gt;isUncalledFunction())</div>
3139
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0">PTAName</a>() &lt;&lt; <span class="stringliteral">&quot;] Checking &quot;</span> &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
3140
+ <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div>
3141
+ <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callNode : <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>())</div>
3142
+ <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; {</div>
3143
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = callNode-&gt;getCallSite();</div>
3144
+ <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(svfInst) == checkFun)</div>
3145
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
3146
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; </div>
3147
+ <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(svfInst);</div>
3148
+ <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; assert(cs.getNumArgOperands() == 2</div>
3149
+ <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; &amp;&amp; <span class="stringliteral">&quot;arguments should be two pointers!!&quot;</span>);</div>
3150
+ <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V1 = cs.getArgOperand(0);</div>
3151
+ <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* V2 = cs.getArgOperand(1);</div>
3152
+ <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a> aliasRes = <a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(V1, V2);</div>
3153
+ <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; </div>
3154
+ <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordtype">bool</span> checkSuccessful = <span class="keyword">false</span>;</div>
3155
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">aliasTestMayAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a13ce6b930a35877f17bffd4b89e22654">aliasTestMayAliasMangled</a>)</div>
3156
+ <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; {</div>
3157
+ <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3158
+ <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3159
+ <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
3160
+ <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#ac353221cc7aced590dcf3550a24b1570">aliasTestNoAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0e68883e2ee328315af29e59bb2008cd">aliasTestNoAliasMangled</a>)</div>
3161
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; {</div>
3162
+ <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>)</div>
3163
+ <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3164
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div>
3165
+ <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a7477a4301d548b93958e57df389cbba0">aliasTestMustAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#aec884481726cfaf19c4ab8ec8d9195b7">aliasTestMustAliasMangled</a>)</div>
3166
+ <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div>
3167
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="comment">// change to must alias when our analysis support it</span></div>
3168
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a> || aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943ab58a0391f037031a51016ebfe2a752b2">AliasResult::MustAlias</a>)</div>
3169
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3170
+ <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div>
3171
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#a83b0a51d88fa7aadff6e9267765d07a5">aliasTestPartialAlias</a> || fun == <a class="code" href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">aliasTestPartialAliasMangled</a>)</div>
3172
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
3173
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// change to partial alias when our analysis support it</span></div>
3174
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span> (aliasRes == <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>)</div>
3175
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; checkSuccessful = <span class="keyword">true</span>;</div>
3176
+ <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
3177
+ <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">else</span></div>
3178
+ <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not supported alias check!!&quot;</span>);</div>
3179
+ <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; </div>
3180
+ <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
3181
+ <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
3182
3182
  <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div>
3183
- <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id1 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1);</div>
3184
- <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id2 = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2);</div>
3185
- <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; </div>
3186
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span> (checkSuccessful)</div>
3187
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t SUCCESS :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3188
- <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; &lt;&lt; svfInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3189
- <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">else</span></div>
3190
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {</div>
3191
- <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">&quot;\t FAILURE :&quot;</span>) &lt;&lt; fun</div>
3192
- <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2</div>
3193
- <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span> &lt;&lt; svfInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3194
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;test case failed!&quot;</span>);</div>
3195
- <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div>
3196
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
3197
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div>
3198
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div>
3199
- <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;}</div>
3183
+ <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span> (checkSuccessful)</div>
3184
+ <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a05dc00b2bd9a8176aae31b6cfffe725d">sucMsg</a>(<span class="stringliteral">&quot;\t SUCCESS :&quot;</span>) &lt;&lt; fun &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2 &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span></div>
3185
+ <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; &lt;&lt; svfInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3186
+ <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">else</span></div>
3187
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; {</div>
3188
+ <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">errMsg</a>(<span class="stringliteral">&quot;\t FAILURE :&quot;</span>) &lt;&lt; fun</div>
3189
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; &lt;&lt; <span class="stringliteral">&quot; check &lt;id:&quot;</span> &lt;&lt; id1 &lt;&lt; <span class="stringliteral">&quot;, id:&quot;</span> &lt;&lt; id2</div>
3190
+ <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; &lt;&lt; <span class="stringliteral">&quot;&gt; at (&quot;</span> &lt;&lt; svfInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>;</div>
3191
+ <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;test case failed!&quot;</span>);</div>
3192
+ <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
3193
+ <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div>
3194
+ <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div>
3195
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div>
3196
+ <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;}</div>
3200
3197
  </div><!-- fragment -->
3201
3198
  </div>
3202
3199
  </div>
@@ -3886,13 +3883,12 @@ Private Member Functions</h2></td></tr>
3886
3883
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &amp;msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
3887
3884
  <div class="ttc" id="aclassSVF_1_1PTACallGraph_html_a46416c668e2f0099394e79f685ede758"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallICFGNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00188">PTACallGraph.cpp:188</a></div></div>
3888
3885
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
3889
- <div class="ttc" id="aclassSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00473">SymbolTableInfo.cpp:473</a></div></div>
3886
+ <div class="ttc" id="aclassSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00469">SymbolTableInfo.cpp:469</a></div></div>
3890
3887
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00337">SVFIR.h:337</a></div></div>
3891
3888
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ad2c8654a6672472f9bf17681aa9b60bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">SVF::PointerAnalysis::getNumOfResolvedIndCallEdge</a></div><div class="ttdeci">u32_t getNumOfResolvedIndCallEdge() const</div><div class="ttdoc">Return number of resolved indirect call edges.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00169">PointerAnalysis.h:169</a></div></div>
3892
3889
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_acbb517523fd30708ed1a93f306cd3545"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#acbb517523fd30708ed1a93f306cd3545">SVF::PointerAnalysis::aliasTestPartialAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestPartialAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00117">PointerAnalysis.h:117</a></div></div>
3893
3890
  <div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
3894
3891
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
3895
- <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00351">SVFType.h:351</a></div></div>
3896
3892
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
3897
3893
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da66b132e5ab8c8746eb22e58d199b4c2a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da66b132e5ab8c8746eb22e58d199b4c2a">SVF::PointerAnalysis::BaseImpl</a></div><div class="ttdeci">@ BaseImpl</div><div class="ttdoc">Represents PointerAnalaysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00096">PointerAnalysis.h:96</a></div></div>
3898
3894
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a412254a7738029bf3ee96f5c15a6bec9">SVF::PointerAnalysis::VFS_WPA</a></div><div class="ttdeci">@ VFS_WPA</div><div class="ttdoc">Versioned sparse flow-sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00076">PointerAnalysis.h:76</a></div></div>
@@ -3902,7 +3898,7 @@ Private Member Functions</h2></td></tr>
3902
3898
  <div class="ttc" id="aclassSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
3903
3899
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00676">SVFIR.cpp:676</a></div></div>
3904
3900
  <div class="ttc" id="aclassSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
3905
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a062f1f2d6d47694caa9ac64a9e68c7b3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">SVF::PointerAnalysis::printIndCSTargets</a></div><div class="ttdeci">void printIndCSTargets()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00353">PointerAnalysis.cpp:353</a></div></div>
3901
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a062f1f2d6d47694caa9ac64a9e68c7b3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a062f1f2d6d47694caa9ac64a9e68c7b3">SVF::PointerAnalysis::printIndCSTargets</a></div><div class="ttdeci">void printIndCSTargets()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00350">PointerAnalysis.cpp:350</a></div></div>
3906
3902
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ad6ccf1ce66083278349c5c3111172d78">SVF::PointerAnalysis::FSSPARSE_WPA</a></div><div class="ttdeci">@ FSSPARSE_WPA</div><div class="ttdoc">Sparse flow sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00075">PointerAnalysis.h:75</a></div></div>
3907
3903
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
3908
3904
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a804a41f4eb078586f20f7d5755ea6fdd"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a804a41f4eb078586f20f7d5755ea6fdd">SVF::SVFFunction::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00394">SVFValue.h:394</a></div></div>
@@ -3944,7 +3940,7 @@ Private Member Functions</h2></td></tr>
3944
3940
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00353">SVFIR.h:353</a></div></div>
3945
3941
  <div class="ttc" id="aclassSVF_1_1Options_html_ad2f3ffd1b8d579ebe4c19a015cd599e2"><div class="ttname"><a href="classSVF_1_1Options.html#ad2f3ffd1b8d579ebe4c19a015cd599e2">SVF::Options::StatBudget</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; StatBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00133">Options.h:133</a></div></div>
3946
3942
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a1e24131ab0a212df00889e32e6ee04f9"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1e24131ab0a212df00889e32e6ee04f9">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const SVFType *type)</div><div class="ttdoc">Debug method.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00237">SymbolTableInfo.cpp:237</a></div></div>
3947
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &amp;vfns, CallEdgeMap &amp;newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00469">PointerAnalysis.cpp:469</a></div></div>
3943
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &amp;vfns, CallEdgeMap &amp;newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00466">PointerAnalysis.cpp:466</a></div></div>
3948
3944
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7648a0358e2c0798db1c547ec7aa7c64"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">SVF::PointerAnalysis::aliasTestMayAlias</a></div><div class="ttdeci">static const std::string aliasTestMayAlias</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00112">PointerAnalysis.h:112</a></div></div>
3949
3945
  <div class="ttc" id="aclassSVF_1_1Options_html_aa5bae1db07c401517c1c0f8fd9f2deef"><div class="ttname"><a href="classSVF_1_1Options.html#aa5bae1db07c401517c1c0f8fd9f2deef">SVF::Options::IndirectCallLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; IndirectCallLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00141">Options.h:141</a></div></div>
3950
3946
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4da84705167ea3a7162ecb9470a8a77b5d8">SVF::PointerAnalysis::BVDataImpl</a></div><div class="ttdeci">@ BVDataImpl</div><div class="ttdoc">Represents BVDataPTAImpl.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00097">PointerAnalysis.h:97</a></div></div>
@@ -4011,7 +4007,7 @@ Private Member Functions</h2></td></tr>
4011
4007
  <div class="ttc" id="aclassSVF_1_1Options_html_abf71061d93d4a3b32246f19dc71e5127"><div class="ttname"><a href="classSVF_1_1Options.html#abf71061d93d4a3b32246f19dc71e5127">SVF::Options::ConnectVCallOnCHA</a></div><div class="ttdeci">static const Option&lt; bool &gt; ConnectVCallOnCHA</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00145">Options.h:145</a></div></div>
4012
4008
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
4013
4009
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ac9e931f254fa3471f5f5337cbca1de09"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ac9e931f254fa3471f5f5337cbca1de09">SVF::PointerAnalysis::CSCallString_WPA</a></div><div class="ttdeci">@ CSCallString_WPA</div><div class="ttdoc">Call string based context sensitive WPA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00072">PointerAnalysis.h:72</a></div></div>
4014
- <div class="ttc" id="aclassSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00499">SymbolTableInfo.cpp:499</a></div></div>
4010
+ <div class="ttc" id="aclassSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00495">SymbolTableInfo.cpp:495</a></div></div>
4015
4011
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ad47b39252e02c68dfb466d4f42dc7ebe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">SVF::PointerAnalysis::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdoc">Call graph used for pointer analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00152">PointerAnalysis.h:152</a></div></div>
4016
4012
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">SVF::PointerAnalysis::Andersen_WPA</a></div><div class="ttdeci">@ Andersen_WPA</div><div class="ttdoc">Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00067">PointerAnalysis.h:67</a></div></div>
4017
4013
  <div class="ttc" id="aclassSVF_1_1PTACallGraph_html_ac695d78f0a78e2e5f1fb4f93264e52b8"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ac695d78f0a78e2e5f1fb4f93264e52b8">SVF::PTACallGraph::verifyCallGraph</a></div><div class="ttdeci">void verifyCallGraph()</div><div class="ttdoc">Issue a warning if the function which has indirect call sites can not be reached from program entry.</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00266">PTACallGraph.cpp:266</a></div></div>
@@ -4024,10 +4020,10 @@ Private Member Functions</h2></td></tr>
4024
4020
  <div class="ttc" id="aclassSVF_1_1Options_html_ac9d18f2d6853f45548f4f85fa2f661c4"><div class="ttname"><a href="classSVF_1_1Options.html#ac9d18f2d6853f45548f4f85fa2f661c4">SVF::Options::PStat</a></div><div class="ttdeci">static const Option&lt; bool &gt; PStat</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00132">Options.h:132</a></div></div>
4025
4021
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a08399de593c073b6dd848a8d849dad27"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a08399de593c073b6dd848a8d849dad27">SVF::PointerAnalysis::dumpAllTypes</a></div><div class="ttdeci">void dumpAllTypes()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00236">PointerAnalysis.cpp:236</a></div></div>
4026
4022
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ac1422cd8b449fdb4a1f7c539364e4c41"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">SVF::PointerAnalysis::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00105">PointerAnalysis.h:105</a></div></div>
4027
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a011b8401f5ed5fdb6cd507053465a7a2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">SVF::PointerAnalysis::getVFnsFromPts</a></div><div class="ttdeci">void getVFnsFromPts(const CallICFGNode *cs, const PointsTo &amp;target, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00443">PointerAnalysis.cpp:443</a></div></div>
4023
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a011b8401f5ed5fdb6cd507053465a7a2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a011b8401f5ed5fdb6cd507053465a7a2">SVF::PointerAnalysis::getVFnsFromPts</a></div><div class="ttdeci">void getVFnsFromPts(const CallICFGNode *cs, const PointsTo &amp;target, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00440">PointerAnalysis.cpp:440</a></div></div>
4028
4024
  <div class="ttc" id="aclassSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01108">SVFValue.h:1108</a></div></div>
4029
4025
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a5d3c3094e263bf16a4f312a118c1bd36"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36">SVF::PointerAnalysis::ptaImplTy</a></div><div class="ttdeci">PTAImplTy ptaImplTy</div><div class="ttdoc">PTA implementation type.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00148">PointerAnalysis.h:148</a></div></div>
4030
- <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01385">LLVMUtil.cpp:1385</a></div></div>
4026
+ <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01354">LLVMUtil.cpp:1354</a></div></div>
4031
4027
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a13746982a11d0cab57e5919d53bfbec8"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Returns true if set is empty.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00098">PointsTo.cpp:98</a></div></div>
4032
4028
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &amp;ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
4033
4029
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00359">GenericGraph.h:359</a></div></div>
@@ -4037,12 +4033,12 @@ Private Member Functions</h2></td></tr>
4037
4033
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a13ce6b930a35877f17bffd4b89e22654"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a13ce6b930a35877f17bffd4b89e22654">SVF::PointerAnalysis::aliasTestMayAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestMayAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00113">PointerAnalysis.h:113</a></div></div>
4038
4034
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
4039
4035
  <div class="ttc" id="aclassSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
4040
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00434">PointerAnalysis.cpp:434</a></div></div>
4036
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00431">PointerAnalysis.cpp:431</a></div></div>
4041
4037
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
4042
4038
  <div class="ttc" id="aclassSVF_1_1CommonCHGraph_html_abe9232b9cada361e0434f7c4390a7864"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html#abe9232b9cada361e0434f7c4390a7864">SVF::CommonCHGraph::getCSVFsBasedonCHA</a></div><div class="ttdeci">virtual const VFunSet &amp; getCSVFsBasedonCHA(CallSite cs)=0</div></div>
4043
4039
  <div class="ttc" id="aclassSVF_1_1CallSite_html_ac2a0091dab3543a398da890b947e42ef"><div class="ttname"><a href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">SVF::CallSite::getInstruction</a></div><div class="ttdeci">const SVFInstruction * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01123">SVFValue.h:1123</a></div></div>
4044
4040
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aec884481726cfaf19c4ab8ec8d9195b7"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aec884481726cfaf19c4ab8ec8d9195b7">SVF::PointerAnalysis::aliasTestMustAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestMustAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00119">PointerAnalysis.h:119</a></div></div>
4045
- <div class="ttc" id="aclassSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00484">SymbolTableInfo.cpp:484</a></div></div>
4041
+ <div class="ttc" id="aclassSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00480">SymbolTableInfo.cpp:480</a></div></div>
4046
4042
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">SVF::PointerAnalysis::CFLFICI_WPA</a></div><div class="ttdeci">@ CFLFICI_WPA</div><div class="ttdoc">Flow-, context-, insensitive CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00078">PointerAnalysis.h:78</a></div></div>
4047
4043
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00477">SVFIR.cpp:477</a></div></div>
4048
4044
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
@@ -4062,7 +4058,7 @@ Private Member Functions</h2></td></tr>
4062
4058
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49">SVF::PointerAnalysis::Andersen_BASE</a></div><div class="ttdeci">@ Andersen_BASE</div><div class="ttdoc">Base Andersen PTA.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00066">PointerAnalysis.h:66</a></div></div>
4063
4059
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85afbe666887476ce8620aca97a159921bc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85afbe666887476ce8620aca97a159921bc">SVF::PointerAnalysis::CFLFSCI_WPA</a></div><div class="ttdeci">@ CFLFSCI_WPA</div><div class="ttdoc">Flow-insensitive, context-sensitive CFL-reachability-based analysis.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00079">PointerAnalysis.h:79</a></div></div>
4064
4060
  <div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
4065
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ab982e6bbd99a2f9a0a3abbebeeb00dcc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc">SVF::PointerAnalysis::validateExpectedFailureTests</a></div><div class="ttdeci">virtual void validateExpectedFailureTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00575">PointerAnalysis.cpp:575</a></div></div>
4061
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ab982e6bbd99a2f9a0a3abbebeeb00dcc"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab982e6bbd99a2f9a0a3abbebeeb00dcc">SVF::PointerAnalysis::validateExpectedFailureTests</a></div><div class="ttdeci">virtual void validateExpectedFailureTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00572">PointerAnalysis.cpp:572</a></div></div>
4066
4062
  <div class="ttc" id="acJSON_8h_html_ad43c3812e6d13e0518d9f8b8f463ffcf"><div class="ttname"><a href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a></div><div class="ttdeci">int count</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00216">cJSON.h:216</a></div></div>
4067
4063
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00280">SVFValue.h:280</a></div></div>
4068
4064
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00449">SVFIR.h:449</a></div></div>
@@ -4070,7 +4066,7 @@ Private Member Functions</h2></td></tr>
4070
4066
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a651cc82379c2d18cc2f69f25b2ae08db"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a651cc82379c2d18cc2f69f25b2ae08db">SVF::PointerAnalysis::aliasTestFailMayAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestFailMayAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00121">PointerAnalysis.h:121</a></div></div>
4071
4067
  <div class="ttc" id="aclassSVF_1_1Options_html_a428e892b31dcb783be36a35e878a0337"><div class="ttname"><a href="classSVF_1_1Options.html#a428e892b31dcb783be36a35e878a0337">SVF::Options::PTSPrint</a></div><div class="ttdeci">static const Option&lt; bool &gt; PTSPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00130">Options.h:130</a></div></div>
4072
4068
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
4073
- <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7accf4e4db4001716e53d98ce5217ac8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8">SVF::PointerAnalysis::validateSuccessTests</a></div><div class="ttdeci">virtual void validateSuccessTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00507">PointerAnalysis.cpp:507</a></div></div>
4069
+ <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7accf4e4db4001716e53d98ce5217ac8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7accf4e4db4001716e53d98ce5217ac8">SVF::PointerAnalysis::validateSuccessTests</a></div><div class="ttdeci">virtual void validateSuccessTests(std::string fun)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00504">PointerAnalysis.cpp:504</a></div></div>
4074
4070
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
4075
4071
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_aefd4e9ea66da5ad84a45efead823eb22"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">SVF::PointerAnalysis::aliasTestFailNoAliasMangled</a></div><div class="ttdeci">static const std::string aliasTestFailNoAliasMangled</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00123">PointerAnalysis.h:123</a></div></div>
4076
4072
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_abdacd060691add054839aa183babe095"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#abdacd060691add054839aa183babe095">SVF::PointerAnalysis::hasIndCSCallees</a></div><div class="ttdeci">bool hasIndCSCallees(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00379">PointerAnalysis.h:379</a></div></div>