svf-tools 1.0.618 → 1.0.620

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 (385) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  3. package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
  4. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +4 -4
  6. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
  10. package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
  11. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
  13. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
  16. package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
  17. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  19. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  21. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
  26. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
  27. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  34. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  37. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  38. package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
  39. package/SVF-doxygen/html/html/Options_8cpp_source.html +123 -119
  40. package/SVF-doxygen/html/html/Options_8h.html +1 -1
  41. package/SVF-doxygen/html/html/Options_8h_source.html +124 -120
  42. package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
  43. package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
  44. package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  46. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
  47. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  49. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
  50. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  51. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
  53. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
  55. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
  56. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
  57. package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
  58. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  59. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
  61. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
  62. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  63. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  64. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  65. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  66. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  67. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  68. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
  69. package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
  70. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
  71. package/SVF-doxygen/html/html/annotated.html +6 -2
  72. package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
  73. package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
  74. package/SVF-doxygen/html/html/classOption-members.html +99 -0
  75. package/SVF-doxygen/html/html/classOption.html +567 -0
  76. package/SVF-doxygen/html/html/classOption.png +0 -0
  77. package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
  78. package/SVF-doxygen/html/html/classOptionBase.html +823 -0
  79. package/SVF-doxygen/html/html/classOptionBase.png +0 -0
  80. package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
  81. package/SVF-doxygen/html/html/classOptionMap.html +428 -0
  82. package/SVF-doxygen/html/html/classOptionMap.png +0 -0
  83. package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
  84. package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
  85. package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
  86. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
  87. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
  90. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +6 -6
  91. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
  92. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  93. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +6 -6
  94. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +7 -7
  95. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
  96. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
  97. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +5 -5
  98. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
  99. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  100. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
  101. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  102. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  103. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
  104. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
  106. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
  107. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
  109. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
  111. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
  114. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
  115. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  117. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  118. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  119. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  120. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
  122. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
  124. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  125. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  128. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
  131. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  132. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
  133. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
  135. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
  137. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  139. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +120 -120
  140. package/SVF-doxygen/html/html/classSVF_1_1Options.html +613 -613
  141. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
  142. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +18 -18
  144. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
  153. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
  154. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
  156. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
  157. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
  158. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
  159. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
  160. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
  161. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  165. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
  167. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
  169. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
  170. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
  171. package/SVF-doxygen/html/html/classes.html +113 -112
  172. package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
  173. package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
  174. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  175. package/SVF-doxygen/html/html/files.html +18 -17
  176. package/SVF-doxygen/html/html/functions_a.html +7 -7
  177. package/SVF-doxygen/html/html/functions_b.html +9 -6
  178. package/SVF-doxygen/html/html/functions_c.html +48 -46
  179. package/SVF-doxygen/html/html/functions_d.html +20 -17
  180. package/SVF-doxygen/html/html/functions_e.html +6 -3
  181. package/SVF-doxygen/html/html/functions_f.html +19 -16
  182. package/SVF-doxygen/html/html/functions_func_b.html +5 -2
  183. package/SVF-doxygen/html/html/functions_func_c.html +36 -30
  184. package/SVF-doxygen/html/html/functions_func_e.html +5 -2
  185. package/SVF-doxygen/html/html/functions_func_f.html +4 -1
  186. package/SVF-doxygen/html/html/functions_func_g.html +12 -6
  187. package/SVF-doxygen/html/html/functions_func_i.html +18 -7
  188. package/SVF-doxygen/html/html/functions_func_n.html +4 -1
  189. package/SVF-doxygen/html/html/functions_func_o.html +28 -13
  190. package/SVF-doxygen/html/html/functions_func_p.html +13 -4
  191. package/SVF-doxygen/html/html/functions_func_s.html +20 -19
  192. package/SVF-doxygen/html/html/functions_func_u.html +3 -0
  193. package/SVF-doxygen/html/html/functions_g.html +16 -10
  194. package/SVF-doxygen/html/html/functions_h.html +1 -1
  195. package/SVF-doxygen/html/html/functions_i.html +38 -23
  196. package/SVF-doxygen/html/html/functions_k.html +1 -1
  197. package/SVF-doxygen/html/html/functions_l.html +7 -7
  198. package/SVF-doxygen/html/html/functions_m.html +12 -12
  199. package/SVF-doxygen/html/html/functions_n.html +6 -2
  200. package/SVF-doxygen/html/html/functions_o.html +46 -25
  201. package/SVF-doxygen/html/html/functions_p.html +55 -33
  202. package/SVF-doxygen/html/html/functions_r.html +6 -6
  203. package/SVF-doxygen/html/html/functions_s.html +30 -29
  204. package/SVF-doxygen/html/html/functions_t.html +4 -4
  205. package/SVF-doxygen/html/html/functions_type_o.html +7 -0
  206. package/SVF-doxygen/html/html/functions_type_p.html +6 -0
  207. package/SVF-doxygen/html/html/functions_u.html +6 -3
  208. package/SVF-doxygen/html/html/functions_v.html +10 -8
  209. package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
  210. package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
  211. package/SVF-doxygen/html/html/functions_vars_c.html +12 -12
  212. package/SVF-doxygen/html/html/functions_vars_d.html +18 -15
  213. package/SVF-doxygen/html/html/functions_vars_e.html +2 -2
  214. package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
  215. package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
  216. package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
  217. package/SVF-doxygen/html/html/functions_vars_i.html +10 -6
  218. package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
  219. package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
  220. package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
  221. package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
  222. package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
  223. package/SVF-doxygen/html/html/functions_vars_p.html +28 -21
  224. package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
  225. package/SVF-doxygen/html/html/functions_vars_s.html +10 -10
  226. package/SVF-doxygen/html/html/functions_vars_t.html +4 -4
  227. package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
  228. package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
  229. package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
  230. package/SVF-doxygen/html/html/functions_w.html +11 -7
  231. package/SVF-doxygen/html/html/globals_d.html +4 -4
  232. package/SVF-doxygen/html/html/globals_e.html +6 -6
  233. package/SVF-doxygen/html/html/globals_f.html +2 -2
  234. package/SVF-doxygen/html/html/globals_func.html +6 -58
  235. package/SVF-doxygen/html/html/globals_i.html +4 -12
  236. package/SVF-doxygen/html/html/globals_l.html +2 -2
  237. package/SVF-doxygen/html/html/globals_r.html +4 -4
  238. package/SVF-doxygen/html/html/globals_s.html +0 -4
  239. package/SVF-doxygen/html/html/globals_type.html +3 -0
  240. package/SVF-doxygen/html/html/globals_u.html +3 -0
  241. package/SVF-doxygen/html/html/globals_vars.html +43 -12
  242. package/SVF-doxygen/html/html/hierarchy.html +197 -182
  243. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  244. package/SVF-doxygen/html/html/menudata.js +1 -2
  245. package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
  246. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  247. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  248. package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
  249. package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
  250. package/SVF-doxygen/html/html/search/all_1.js +7 -7
  251. package/SVF-doxygen/html/html/search/all_10.js +31 -26
  252. package/SVF-doxygen/html/html/search/all_11.js +8 -8
  253. package/SVF-doxygen/html/html/search/all_12.js +19 -20
  254. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  255. package/SVF-doxygen/html/html/search/all_14.js +5 -4
  256. package/SVF-doxygen/html/html/search/all_15.js +6 -6
  257. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  258. package/SVF-doxygen/html/html/search/all_2.js +2 -1
  259. package/SVF-doxygen/html/html/search/all_3.js +16 -14
  260. package/SVF-doxygen/html/html/search/all_4.js +18 -17
  261. package/SVF-doxygen/html/html/search/all_5.js +6 -5
  262. package/SVF-doxygen/html/html/search/all_6.js +9 -8
  263. package/SVF-doxygen/html/html/search/all_7.js +4 -2
  264. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  265. package/SVF-doxygen/html/html/search/all_9.js +12 -9
  266. package/SVF-doxygen/html/html/search/all_b.js +2 -2
  267. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  268. package/SVF-doxygen/html/html/search/all_d.js +12 -12
  269. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  270. package/SVF-doxygen/html/html/search/all_f.js +24 -6
  271. package/SVF-doxygen/html/html/search/classes_c.js +15 -0
  272. package/SVF-doxygen/html/html/search/files_2.js +1 -0
  273. package/SVF-doxygen/html/html/search/functions_1.js +1 -0
  274. package/SVF-doxygen/html/html/search/functions_10.js +0 -2
  275. package/SVF-doxygen/html/html/search/functions_11.js +1 -2
  276. package/SVF-doxygen/html/html/search/functions_13.js +1 -0
  277. package/SVF-doxygen/html/html/search/functions_2.js +1 -0
  278. package/SVF-doxygen/html/html/search/functions_3.js +0 -2
  279. package/SVF-doxygen/html/html/search/functions_4.js +1 -3
  280. package/SVF-doxygen/html/html/search/functions_5.js +2 -1
  281. package/SVF-doxygen/html/html/search/functions_6.js +2 -0
  282. package/SVF-doxygen/html/html/search/functions_8.js +3 -1
  283. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  284. package/SVF-doxygen/html/html/search/functions_d.js +1 -0
  285. package/SVF-doxygen/html/html/search/functions_e.js +5 -1
  286. package/SVF-doxygen/html/html/search/functions_f.js +2 -0
  287. package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
  288. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  289. package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
  290. package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
  291. package/SVF-doxygen/html/html/search/variables_1.js +7 -7
  292. package/SVF-doxygen/html/html/search/variables_10.js +23 -21
  293. package/SVF-doxygen/html/html/search/variables_11.js +7 -5
  294. package/SVF-doxygen/html/html/search/variables_12.js +10 -10
  295. package/SVF-doxygen/html/html/search/variables_13.js +7 -7
  296. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  297. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  298. package/SVF-doxygen/html/html/search/variables_16.js +3 -3
  299. package/SVF-doxygen/html/html/search/variables_2.js +1 -1
  300. package/SVF-doxygen/html/html/search/variables_3.js +12 -12
  301. package/SVF-doxygen/html/html/search/variables_4.js +18 -15
  302. package/SVF-doxygen/html/html/search/variables_5.js +5 -2
  303. package/SVF-doxygen/html/html/search/variables_6.js +7 -6
  304. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  305. package/SVF-doxygen/html/html/search/variables_8.js +1 -1
  306. package/SVF-doxygen/html/html/search/variables_9.js +7 -6
  307. package/SVF-doxygen/html/html/search/variables_b.js +1 -1
  308. package/SVF-doxygen/html/html/search/variables_c.js +5 -4
  309. package/SVF-doxygen/html/html/search/variables_d.js +11 -11
  310. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  311. package/SVF-doxygen/html/html/search/variables_f.js +3 -2
  312. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
  313. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  314. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
  315. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  316. package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
  317. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
  318. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  319. package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
  320. package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
  321. package/include/Util/CommandLine.h +527 -0
  322. package/include/Util/Options.h +124 -124
  323. package/include/WPA/Andersen.h +5 -5
  324. package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
  325. package/lib/CFL/CFLAlias.cpp +5 -5
  326. package/lib/CFL/CFLBase.cpp +4 -4
  327. package/lib/CFL/CFLGraphBuilder.cpp +2 -2
  328. package/lib/CFL/CFLVF.cpp +5 -5
  329. package/lib/CMakeLists.txt +8 -4
  330. package/lib/DDA/ContextDDA.cpp +1 -1
  331. package/lib/DDA/DDAPass.cpp +14 -13
  332. package/lib/DDA/FlowDDA.cpp +1 -1
  333. package/lib/Graphs/ConsG.cpp +10 -10
  334. package/lib/Graphs/ICFG.cpp +1 -1
  335. package/lib/Graphs/IRGraph.cpp +2 -2
  336. package/lib/Graphs/SVFG.cpp +5 -5
  337. package/lib/Graphs/SVFGOPT.cpp +5 -5
  338. package/lib/Graphs/VFG.cpp +1 -1
  339. package/lib/MSSA/MemRegion.cpp +2 -2
  340. package/lib/MSSA/MemSSA.cpp +4 -4
  341. package/lib/MSSA/SVFGBuilder.cpp +4 -4
  342. package/lib/MTA/FSMPTA.cpp +13 -13
  343. package/lib/MTA/MHP.cpp +1 -1
  344. package/lib/MTA/MTA.cpp +2 -2
  345. package/lib/MTA/MTAStat.cpp +1 -1
  346. package/lib/MTA/PCG.cpp +8 -2
  347. package/lib/MTA/TCT.cpp +2 -2
  348. package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
  349. package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
  350. package/lib/MemoryModel/PointsTo.cpp +1 -1
  351. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  352. package/lib/SABER/LeakChecker.cpp +1 -1
  353. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  354. package/lib/SABER/SrcSnkDDA.cpp +5 -5
  355. package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
  356. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  357. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
  358. package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
  359. package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
  360. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
  361. package/lib/SVFIR/SVFIR.cpp +4 -4
  362. package/lib/SVFIR/SVFStatements.cpp +16 -16
  363. package/lib/SVFIR/SVFVariables.cpp +5 -5
  364. package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
  365. package/lib/Util/NodeIDAllocator.cpp +9 -9
  366. package/lib/Util/Options.cpp +426 -412
  367. package/lib/Util/SVFStat.cpp +5 -5
  368. package/lib/Util/SVFUtil.cpp +1 -1
  369. package/lib/Util/Z3Expr.cpp +2 -2
  370. package/lib/WPA/Andersen.cpp +13 -13
  371. package/lib/WPA/AndersenSCD.cpp +3 -3
  372. package/lib/WPA/FlowSensitive.cpp +8 -8
  373. package/lib/WPA/TypeAnalysis.cpp +1 -1
  374. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  375. package/lib/WPA/WPAPass.cpp +10 -9
  376. package/package.json +1 -1
  377. package/tools/CFL/cfl.cpp +6 -14
  378. package/tools/DDA/dda.cpp +39 -29
  379. package/tools/Example/svf-ex.cpp +5 -8
  380. package/tools/MTA/LockResultValidator.cpp +2 -2
  381. package/tools/MTA/MTAAnnotator.cpp +5 -5
  382. package/tools/MTA/MTAResultValidator.cpp +8 -8
  383. package/tools/MTA/mta.cpp +5 -8
  384. package/tools/SABER/saber.cpp +23 -17
  385. package/tools/WPA/wpa.cpp +6 -9
@@ -286,8 +286,8 @@ Private Attributes</h2></td></tr>
286
286
  <p>Return alias results based on our points-to/alias analysis TODO: Need to handle PartialAlias and MustAlias here. </p>
287
287
  <p>TODO: When this method is invoked during compiler optimizations, the IR used for pointer analysis may been changed, so some Values may not find corresponding <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> node. In this case, we only check alias between two Values if they both have <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> nodes. Otherwise, MayAlias will be returned. </p>
288
288
 
289
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00296">296</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
290
- <div class="fragment"><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;{</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPAG();</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V1) &amp;&amp; pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V2))</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node1 = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node1))</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node1-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node2 = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2));</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node2))</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node2-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;alias(V1,V2);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
289
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00297">297</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
290
+ <div class="fragment"><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;{</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPAG();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V1) &amp;&amp; pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(V2))</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node1 = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V1));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node1))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node1-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node2 = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(V2));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(node2))</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node2-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;alias(V1,V2);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
291
291
  <div class="ttc" id="classSVF_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#l00128">IRGraph.h:128</a></div></div>
292
292
  <div class="ttc" id="classSVF_1_1IRGraph_html_a401ec65771a3d2dcc8eb60574aadd354"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00132">IRGraph.h:132</a></div></div>
293
293
  <div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00703">SVFIR.cpp:703</a></div></div>
@@ -335,8 +335,8 @@ Private Attributes</h2></td></tr>
335
335
 
336
336
  <p>Interface expose to users of our pointer analysis, given PAGNodes. </p>
337
337
 
338
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00280">280</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
339
- <div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPAG();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1)))</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node1);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2)))</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node2);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;alias(node1,node2);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00703">SVFIR.cpp:703</a></div></div>
338
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00281">281</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
339
+ <div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;{</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPAG();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1)))</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node1);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2)))</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;computeDDAPts(node2);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;alias(node1,node2);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00703">SVFIR.cpp:703</a></div></div>
340
340
  <div class="ttc" id="classSVF_1_1DDAPass_html_a7a4bd29396855329972f928107521c86"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">SVF::DDAPass::_pta</a></div><div class="ttdeci">std::unique_ptr&lt; PointerAnalysis &gt; _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00092">DDAPass.h:92</a></div></div>
341
341
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
342
342
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
@@ -384,9 +384,9 @@ Private Attributes</h2></td></tr>
384
384
  </div><div class="memdoc">
385
385
  <p>Mark insensitive edge for function recursions </p>
386
386
 
387
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00195">195</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
388
- <div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">edgeInCallGraphSCC</a>(pta,edge))</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
389
- <div class="ttc" id="classSVF_1_1DDAPass_html_aab60429398a89ec1c8663a305130376f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">SVF::DDAPass::edgeInCallGraphSCC</a></div><div class="ttdeci">bool edgeInCallGraphSCC(PointerAnalysis *pta, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00177">DDAPass.cpp:177</a></div></div>
387
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00196">196</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
388
+ <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">edgeInCallGraphSCC</a>(pta,edge))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
389
+ <div class="ttc" id="classSVF_1_1DDAPass_html_aab60429398a89ec1c8663a305130376f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aab60429398a89ec1c8663a305130376f">SVF::DDAPass::edgeInCallGraphSCC</a></div><div class="ttdeci">bool edgeInCallGraphSCC(PointerAnalysis *pta, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00178">DDAPass.cpp:178</a></div></div>
390
390
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
391
391
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
392
392
  <div class="ttc" id="classSVF_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#l00373">GenericGraph.h:373</a></div></div>
@@ -441,8 +441,8 @@ Private Attributes</h2></td></tr>
441
441
  </div><div class="memdoc">
442
442
  <p>Mark insensitive edge for value-flow cycles </p>
443
443
 
444
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00218">218</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
445
- <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;NodePair&gt;</a> insensitvefunPairs;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(this-&gt;<a class="code" href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">edgeInSVFGSCC</a>(svfgSCC,edge))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; insensitvefunPairs.insert(std::make_pair(src,dst));</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; insensitvefunPairs.insert(std::make_pair(dst,src));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;should not be an inter-procedural return edge&quot;</span> );</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">for</span>(SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(src,dst))!=insensitvefunPairs.end())</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(dst,src))!=insensitvefunPairs.end())</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
444
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00219">219</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
445
+ <div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;NodePair&gt;</a> insensitvefunPairs;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span> (SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span>(this-&gt;<a class="code" href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">edgeInSVFGSCC</a>(svfgSCC,edge))</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; insensitvefunPairs.insert(std::make_pair(src,dst));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; insensitvefunPairs.insert(std::make_pair(dst,src));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;should not be an inter-procedural return edge&quot;</span> );</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span>(SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),eit = svfg-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeIt = it-&gt;second-&gt;InEdgeBegin();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; SVFGEdge::SVFGEdgeSetTy::const_iterator edgeEit = it-&gt;second-&gt;InEdgeEnd();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">for</span> (; edgeIt != edgeEit; ++edgeIt)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = *edgeIt;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() || edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(srcFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(dstFun)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(src,dst))!=insensitvefunPairs.end())</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(insensitvefunPairs.find(std::make_pair(dst,src))!=insensitvefunPairs.end())</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; insensitveEdges.insert(edge);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
446
446
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
447
447
  <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
448
448
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
@@ -451,7 +451,7 @@ Private Attributes</h2></td></tr>
451
451
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
452
452
  <div class="ttc" id="classSVF_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#l00373">GenericGraph.h:373</a></div></div>
453
453
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
454
- <div class="ttc" id="classSVF_1_1DDAPass_html_a3810708c5e2695d2a0e36084b589e432"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">SVF::DDAPass::edgeInSVFGSCC</a></div><div class="ttdeci">bool edgeInSVFGSCC(const SVFGSCC *svfgSCC, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00169">DDAPass.cpp:169</a></div></div>
454
+ <div class="ttc" id="classSVF_1_1DDAPass_html_a3810708c5e2695d2a0e36084b589e432"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a3810708c5e2695d2a0e36084b589e432">SVF::DDAPass::edgeInSVFGSCC</a></div><div class="ttdeci">bool edgeInSVFGSCC(const SVFGSCC *svfgSCC, const SVFGEdge *edge)</div><div class="ttdoc">Return TRUE if this edge is inside a SVFG SCC, i.e., src node and dst node are in the same SCC on the...</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00170">DDAPass.cpp:170</a></div></div>
455
455
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
456
456
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00091">GenericGraph.h:91</a></div></div>
457
457
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a4352297ef44c4eff1efe2f348cce6fe9"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">SVF::VFGEdge::isCallVFGEdge</a></div><div class="ttdeci">bool isCallVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00084">VFGEdge.h:84</a></div></div>
@@ -496,8 +496,8 @@ Private Attributes</h2></td></tr>
496
496
  <p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
497
497
  <p>Whether call graph edge in <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC </p>
498
498
 
499
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00177">177</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
500
- <div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(srcFun,dstFun);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;should not be an inter-procedural return edge&quot;</span> );</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
499
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00178">178</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
500
+ <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* srcFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* dstFun = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getICFGNode()-&gt;getFun();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(srcFun &amp;&amp; dstFun)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">inSameCallGraphSCC</a>(srcFun,dstFun);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() == <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;should not be an inter-procedural return edge&quot;</span> );</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
501
501
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
502
502
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
503
503
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ae58c2b25494ec51e714c83c6cfd5dd67"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae58c2b25494ec51e714c83c6cfd5dd67">SVF::PointerAnalysis::inSameCallGraphSCC</a></div><div class="ttdeci">bool inSameCallGraphSCC(const SVFFunction *fun1, const SVFFunction *fun2)</div><div class="ttdoc">Return TRUE if this edge is inside a CallGraph SCC, i.e., src node and dst node are in the same SCC o...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00410">PointerAnalysis.h:410</a></div></div>
@@ -542,8 +542,8 @@ Private Attributes</h2></td></tr>
542
542
  <p>Return TRUE if this edge is inside a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> SCC, i.e., src node and dst node are in the same SCC on the <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
543
543
  <p>Whether <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge in a SCC cycle </p>
544
544
 
545
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00169">169</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
546
- <div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> (svfgSCC-&gt;repNode(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == svfgSCC-&gt;repNode(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00079">GenericGraph.h:79</a></div></div>
545
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00170">170</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
546
+ <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> (svfgSCC-&gt;repNode(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) == svfgSCC-&gt;repNode(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00079">GenericGraph.h:79</a></div></div>
547
547
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00075">GenericGraph.h:75</a></div></div>
548
548
  </div><!-- fragment -->
549
549
  </div>
@@ -626,11 +626,11 @@ Private Attributes</h2></td></tr>
626
626
  <p>Context insensitive Edge for DDA. </p>
627
627
  <p>Initialize context insensitive Edge for DDA </p>
628
628
 
629
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00158">158</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
630
- <div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aa1a3b9293dffeef1bb16a2a7b3a007dd">Options::InsenRecur</a>)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">collectCxtInsenEdgeForRecur</a>(pta,svfg,insensitveEdges);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a35cfe6add81dc82983e0c53c36c6e667">Options::InsenCycle</a>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">collectCxtInsenEdgeForVFCycle</a>(pta,svfg,svfgSCC,insensitveEdges);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_af03661604ba924d1c3fd34a231ba87a6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">SVF::DDAPass::collectCxtInsenEdgeForVFCycle</a></div><div class="ttdeci">void collectCxtInsenEdgeForVFCycle(PointerAnalysis *pta, const SVFG *svfg, const SVFGSCC *svfgSCC, SVFGEdgeSet &amp;insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00218">DDAPass.cpp:218</a></div></div>
631
- <div class="ttc" id="classSVF_1_1DDAPass_html_af8bc7f84e7dc8c7032eec6162a837ba6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">SVF::DDAPass::collectCxtInsenEdgeForRecur</a></div><div class="ttdeci">void collectCxtInsenEdgeForRecur(PointerAnalysis *pta, const SVFG *svfg, SVFGEdgeSet &amp;insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00195">DDAPass.cpp:195</a></div></div>
632
- <div class="ttc" id="classSVF_1_1Options_html_a35cfe6add81dc82983e0c53c36c6e667"><div class="ttname"><a href="classSVF_1_1Options.html#a35cfe6add81dc82983e0c53c36c6e667">SVF::Options::InsenCycle</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; InsenCycle</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00100">Options.h:100</a></div></div>
633
- <div class="ttc" id="classSVF_1_1Options_html_aa1a3b9293dffeef1bb16a2a7b3a007dd"><div class="ttname"><a href="classSVF_1_1Options.html#aa1a3b9293dffeef1bb16a2a7b3a007dd">SVF::Options::InsenRecur</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; InsenRecur</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00099">Options.h:99</a></div></div>
629
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00159">159</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
630
+ <div class="fragment"><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aeab702f641fd13ee1d0f89837097e43b">Options::InsenRecur</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">collectCxtInsenEdgeForRecur</a>(pta,svfg,insensitveEdges);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a0c5d08f13bd41095afb3b60c7ffad0e0">Options::InsenCycle</a>())</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">collectCxtInsenEdgeForVFCycle</a>(pta,svfg,svfgSCC,insensitveEdges);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_af03661604ba924d1c3fd34a231ba87a6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af03661604ba924d1c3fd34a231ba87a6">SVF::DDAPass::collectCxtInsenEdgeForVFCycle</a></div><div class="ttdeci">void collectCxtInsenEdgeForVFCycle(PointerAnalysis *pta, const SVFG *svfg, const SVFGSCC *svfgSCC, SVFGEdgeSet &amp;insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00219">DDAPass.cpp:219</a></div></div>
631
+ <div class="ttc" id="classSVF_1_1DDAPass_html_af8bc7f84e7dc8c7032eec6162a837ba6"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af8bc7f84e7dc8c7032eec6162a837ba6">SVF::DDAPass::collectCxtInsenEdgeForRecur</a></div><div class="ttdeci">void collectCxtInsenEdgeForRecur(PointerAnalysis *pta, const SVFG *svfg, SVFGEdgeSet &amp;insensitveEdges)</div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00196">DDAPass.cpp:196</a></div></div>
632
+ <div class="ttc" id="classSVF_1_1Options_html_a0c5d08f13bd41095afb3b60c7ffad0e0"><div class="ttname"><a href="classSVF_1_1Options.html#a0c5d08f13bd41095afb3b60c7ffad0e0">SVF::Options::InsenCycle</a></div><div class="ttdeci">static const Option&lt; bool &gt; InsenCycle</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00100">Options.h:100</a></div></div>
633
+ <div class="ttc" id="classSVF_1_1Options_html_aeab702f641fd13ee1d0f89837097e43b"><div class="ttname"><a href="classSVF_1_1Options.html#aeab702f641fd13ee1d0f89837097e43b">SVF::Options::InsenRecur</a></div><div class="ttdeci">static const Option&lt; bool &gt; InsenRecur</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00099">Options.h:99</a></div></div>
634
634
  </div><!-- fragment -->
635
635
  </div>
636
636
  </div>
@@ -660,8 +660,8 @@ Private Attributes</h2></td></tr>
660
660
  <p>Print queries' pts. </p>
661
661
  <p>Print queries' pts </p>
662
662
 
663
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00324">324</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
664
- <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>&amp; candidates = <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">getCandidateQueries</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">for</span> (OrderedNodeSet::const_iterator it = candidates.begin(), eit = candidates.end(); it != eit; ++it)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPts(*it);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;dumpPts(*it,pts);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00093">DDAPass.h:93</a></div></div>
663
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00325">325</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
664
+ <div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;{</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>&amp; candidates = <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a6f50b9a26f66e716acf163cc77030e5f">getCandidateQueries</a>();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span> (OrderedNodeSet::const_iterator it = candidates.begin(), eit = candidates.end(); it != eit; ++it)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;getPts(*it);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;dumpPts(*it,pts);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00093">DDAPass.h:93</a></div></div>
665
665
  <div class="ttc" id="classSVF_1_1DDAPass_html_a7a4bd29396855329972f928107521c86"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">SVF::DDAPass::_pta</a></div><div class="ttdeci">std::unique_ptr&lt; PointerAnalysis &gt; _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00092">DDAPass.h:92</a></div></div>
666
666
  <div class="ttc" id="namespaceSVF_html_a3c2bd95727ec0d9c55c631b6617026c8"><div class="ttname"><a href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">SVF::OrderedNodeSet</a></div><div class="ttdeci">OrderedSet&lt; NodeID &gt; OrderedNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00109">SVFType.h:109</a></div></div>
667
667
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
@@ -697,11 +697,12 @@ Private Attributes</h2></td></tr>
697
697
  <p>initialization for llvm alias analyzer </p>
698
698
 
699
699
  <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00055">55</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
700
- <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">//InitializeAliasAnalysis(this, getDataLayout(&amp;module));</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">selectClient</a>(pag-&gt;getModule());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; i &lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">PointerAnalysis::Default_PTA</a>; i++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a2203f622ab539b3a38488575c9eec33b">Options::DDASelected</a>.isSet(i))</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#ac480fe602e5e2d36ec4815ce50aeaad3">runPointerAnalysis</a>(pag, i);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_ac480fe602e5e2d36ec4815ce50aeaad3"><div class="ttname"><a href="classSVF_1_1DDAPass.html#ac480fe602e5e2d36ec4815ce50aeaad3">SVF::DDAPass::runPointerAnalysis</a></div><div class="ttdeci">void runPointerAnalysis(SVFIR *module, u32_t kind)</div><div class="ttdoc">Create pointer analysis according to specified kind and analyze the module. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00107">DDAPass.cpp:107</a></div></div>
700
+ <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">//InitializeAliasAnalysis(this, getDataLayout(&amp;module));</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">selectClient</a>(pag-&gt;getModule());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; i &lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">PointerAnalysis::Default_PTA</a>; i++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a> iPtTy = <span class="keyword">static_cast&lt;</span><a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a><span class="keyword">&gt;</span>(i);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#afa6c98d477db41a457ac83cfbfd4a580">Options::DDASelected</a>(iPtTy))</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#ac480fe602e5e2d36ec4815ce50aeaad3">runPointerAnalysis</a>(pag, i);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAPass_html_ac480fe602e5e2d36ec4815ce50aeaad3"><div class="ttname"><a href="classSVF_1_1DDAPass.html#ac480fe602e5e2d36ec4815ce50aeaad3">SVF::DDAPass::runPointerAnalysis</a></div><div class="ttdeci">void runPointerAnalysis(SVFIR *module, u32_t kind)</div><div class="ttdoc">Create pointer analysis according to specified kind and analyze the module. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00108">DDAPass.cpp:108</a></div></div>
701
701
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
702
- <div class="ttc" id="classSVF_1_1Options_html_a2203f622ab539b3a38488575c9eec33b"><div class="ttname"><a href="classSVF_1_1Options.html#a2203f622ab539b3a38488575c9eec33b">SVF::Options::DDASelected</a></div><div class="ttdeci">static llvm::cl::bits&lt; PointerAnalysis::PTATY &gt; DDASelected</div><div class="ttdoc">register this into alias analysis group </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00104">Options.h:104</a></div></div>
703
702
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85adb3d4cbd8c38c1c498bc51198626a790">SVF::PointerAnalysis::Default_PTA</a></div><div class="ttdoc">default pta without any analysis </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00090">PointerAnalysis.h:90</a></div></div>
704
- <div class="ttc" id="classSVF_1_1DDAPass_html_aa33694e0b5f30c451c229e92877e4842"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">SVF::DDAPass::selectClient</a></div><div class="ttdeci">virtual void selectClient(SVFModule *module)</div><div class="ttdoc">Select a client. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00071">DDAPass.cpp:71</a></div></div>
703
+ <div class="ttc" id="classSVF_1_1DDAPass_html_aa33694e0b5f30c451c229e92877e4842"><div class="ttname"><a href="classSVF_1_1DDAPass.html#aa33694e0b5f30c451c229e92877e4842">SVF::DDAPass::selectClient</a></div><div class="ttdeci">virtual void selectClient(SVFModule *module)</div><div class="ttdoc">Select a client. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00072">DDAPass.cpp:72</a></div></div>
704
+ <div class="ttc" id="classSVF_1_1Options_html_afa6c98d477db41a457ac83cfbfd4a580"><div class="ttname"><a href="classSVF_1_1Options.html#afa6c98d477db41a457ac83cfbfd4a580">SVF::Options::DDASelected</a></div><div class="ttdeci">static OptionMultiple&lt; PointerAnalysis::PTATY &gt; DDASelected</div><div class="ttdoc">register this into alias analysis group </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00104">Options.h:104</a></div></div>
705
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">SVF::PointerAnalysis::PTATY</a></div><div class="ttdeci">PTATY</div><div class="ttdoc">Pointer analysis type list. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00063">PointerAnalysis.h:63</a></div></div>
705
706
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">SVF::PointerAnalysis::FlowS_DDA</a></div><div class="ttdoc">Flow sensitive DDA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00085">PointerAnalysis.h:85</a></div></div>
706
707
  </div><!-- fragment -->
707
708
  </div>
@@ -746,23 +747,23 @@ Private Attributes</h2></td></tr>
746
747
  <p>compute points-to</p>
747
748
  <p>finalize </p>
748
749
 
749
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00107">107</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
750
- <div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a084679a423e78217ca10794775c25b1d">ContextCond::setMaxPathLen</a>(<a class="code" href="classSVF_1_1Options.html#a32ef95b3bd06b50337b3129b74ffb45c">Options::MaxPathLen</a>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a2e53156bd075d7802d390672f129c6a8">Options::MaxContextLen</a>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">switch</span> (kind)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">PointerAnalysis::Cxt_DDA</a>:</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a> = std::make_unique&lt;ContextDDA&gt;(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a> = std::make_unique&lt;FlowDDA&gt;(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;This pointer analysis has not been implemented yet.\n&quot;</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a0865038c4738fcc8f47106faad03d98a">Options::WPANum</a>)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">collectWPANum</a>(pag-&gt;getModule());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;initialize();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">answerQueries</a>(<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>.get());</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;finalize();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aee5e47ee3ca9bacb514f9dfbcb3abf24">Options::PrintCPts</a>)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;dumpCPts();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;printStat())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>.get());</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10">Options::PrintQueryPts</a>)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">printQueryPTS</a>();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_a2e53156bd075d7802d390672f129c6a8"><div class="ttname"><a href="classSVF_1_1Options.html#a2e53156bd075d7802d390672f129c6a8">SVF::Options::MaxContextLen</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxContextLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00096">Options.h:96</a></div></div>
751
- <div class="ttc" id="classSVF_1_1Options_html_a32ef95b3bd06b50337b3129b74ffb45c"><div class="ttname"><a href="classSVF_1_1Options.html#a32ef95b3bd06b50337b3129b74ffb45c">SVF::Options::MaxPathLen</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxPathLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00095">Options.h:95</a></div></div>
752
- <div class="ttc" id="classSVF_1_1DDAClient_html_a76b4c50a1051ff7c0b162b55473de028"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">SVF::DDAClient::collectWPANum</a></div><div class="ttdeci">virtual void collectWPANum(SVFModule *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00103">DDAClient.h:103</a></div></div>
750
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00108">108</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
751
+ <div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a084679a423e78217ca10794775c25b1d">ContextCond::setMaxPathLen</a>(<a class="code" href="classSVF_1_1Options.html#a63121666a96f6cd2ae56d868c9576a53">Options::MaxPathLen</a>());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a6237da3f4e264fa8b63c11d621f39e71">Options::MaxContextLen</a>());</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">switch</span> (kind)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">PointerAnalysis::Cxt_DDA</a>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a> = std::make_unique&lt;ContextDDA&gt;(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">PointerAnalysis::FlowS_DDA</a>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a> = std::make_unique&lt;FlowDDA&gt;(pag, <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;This pointer analysis has not been implemented yet.\n&quot;</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a782d52d7e8d423c2bef27b34d518ffd9">Options::WPANum</a>())</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">collectWPANum</a>(pag-&gt;getModule());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;initialize();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">answerQueries</a>(<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>.get());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;finalize();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#abe3087eb48a10bb600d1fd24308c019b">Options::PrintCPts</a>())</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;dumpCPts();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>-&gt;printStat())</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">performStat</a>(<a class="code" href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">_pta</a>.get());</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ae88c0813d02dcb5632cd721a61a15014">Options::PrintQueryPts</a>())</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">printQueryPTS</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="ttc" id="classSVF_1_1DDAClient_html_a76b4c50a1051ff7c0b162b55473de028"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a76b4c50a1051ff7c0b162b55473de028">SVF::DDAClient::collectWPANum</a></div><div class="ttdeci">virtual void collectWPANum(SVFModule *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00103">DDAClient.h:103</a></div></div>
753
752
  <div class="ttc" id="classSVF_1_1ContextCond_html_a92e89bbae0f31bb9eb971ab3edcc8071"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">SVF::ContextCond::setMaxCxtLen</a></div><div class="ttdeci">static void setMaxCxtLen(u32_t max)</div><div class="ttdoc">set max context limit </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00265">DPItem.h:265</a></div></div>
753
+ <div class="ttc" id="classSVF_1_1Options_html_a63121666a96f6cd2ae56d868c9576a53"><div class="ttname"><a href="classSVF_1_1Options.html#a63121666a96f6cd2ae56d868c9576a53">SVF::Options::MaxPathLen</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxPathLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00095">Options.h:95</a></div></div>
754
754
  <div class="ttc" id="classSVF_1_1DDAClient_html_aedd25e487775d37d4f6dcc8a5565c2a3"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aedd25e487775d37d4f6dcc8a5565c2a3">SVF::DDAClient::performStat</a></div><div class="ttdeci">virtual void performStat(PointerAnalysis *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00101">DDAClient.h:101</a></div></div>
755
- <div class="ttc" id="classSVF_1_1Options_html_a0865038c4738fcc8f47106faad03d98a"><div class="ttname"><a href="classSVF_1_1Options.html#a0865038c4738fcc8f47106faad03d98a">SVF::Options::WPANum</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; WPANum</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00103">Options.h:103</a></div></div>
756
755
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a0ab6564c48897595c9d23382a026e0a8">SVF::PointerAnalysis::Cxt_DDA</a></div><div class="ttdoc">context sensitive DDA </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00087">PointerAnalysis.h:87</a></div></div>
757
756
  <div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00093">DDAPass.h:93</a></div></div>
758
- <div class="ttc" id="classSVF_1_1Options_html_aabfcfcd67df527cdf587aff5ecc26a10"><div class="ttname"><a href="classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10">SVF::Options::PrintQueryPts</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintQueryPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00102">Options.h:102</a></div></div>
759
- <div class="ttc" id="classSVF_1_1Options_html_aee5e47ee3ca9bacb514f9dfbcb3abf24"><div class="ttname"><a href="classSVF_1_1Options.html#aee5e47ee3ca9bacb514f9dfbcb3abf24">SVF::Options::PrintCPts</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintCPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00101">Options.h:101</a></div></div>
760
- <div class="ttc" id="classSVF_1_1DDAPass_html_afc700bd3abb5d9199621741b9bd04f0f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">SVF::DDAPass::printQueryPTS</a></div><div class="ttdeci">void printQueryPTS()</div><div class="ttdoc">Print queries&amp;#39; pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00324">DDAPass.cpp:324</a></div></div>
757
+ <div class="ttc" id="classSVF_1_1Options_html_ae88c0813d02dcb5632cd721a61a15014"><div class="ttname"><a href="classSVF_1_1Options.html#ae88c0813d02dcb5632cd721a61a15014">SVF::Options::PrintQueryPts</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintQueryPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00102">Options.h:102</a></div></div>
758
+ <div class="ttc" id="classSVF_1_1DDAPass_html_afc700bd3abb5d9199621741b9bd04f0f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f">SVF::DDAPass::printQueryPTS</a></div><div class="ttdeci">void printQueryPTS()</div><div class="ttdoc">Print queries&amp;#39; pts. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00325">DDAPass.cpp:325</a></div></div>
761
759
  <div class="ttc" id="classSVF_1_1ContextCond_html_a084679a423e78217ca10794775c25b1d"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a084679a423e78217ca10794775c25b1d">SVF::ContextCond::setMaxPathLen</a></div><div class="ttdeci">static void setMaxPathLen(u32_t max)</div><div class="ttdoc">set max path limit </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00270">DPItem.h:270</a></div></div>
762
760
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
761
+ <div class="ttc" id="classSVF_1_1Options_html_a6237da3f4e264fa8b63c11d621f39e71"><div class="ttname"><a href="classSVF_1_1Options.html#a6237da3f4e264fa8b63c11d621f39e71">SVF::Options::MaxContextLen</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxContextLen</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00096">Options.h:96</a></div></div>
762
+ <div class="ttc" id="classSVF_1_1Options_html_a782d52d7e8d423c2bef27b34d518ffd9"><div class="ttname"><a href="classSVF_1_1Options.html#a782d52d7e8d423c2bef27b34d518ffd9">SVF::Options::WPANum</a></div><div class="ttdeci">static const Option&lt; bool &gt; WPANum</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00103">Options.h:103</a></div></div>
763
763
  <div class="ttc" id="classSVF_1_1DDAPass_html_a7a4bd29396855329972f928107521c86"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a7a4bd29396855329972f928107521c86">SVF::DDAPass::_pta</a></div><div class="ttdeci">std::unique_ptr&lt; PointerAnalysis &gt; _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00092">DDAPass.h:92</a></div></div>
764
764
  <div class="ttc" id="classSVF_1_1DDAClient_html_a3b202f9a70b6e23c06a15556d23d245e"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a3b202f9a70b6e23c06a15556d23d245e">SVF::DDAClient::answerQueries</a></div><div class="ttdeci">virtual void answerQueries(PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8cpp_source.html#l00046">DDAClient.cpp:46</a></div></div>
765
765
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85aa43c83e2f0df003c158d4b1325b50b18">SVF::PointerAnalysis::FlowS_DDA</a></div><div class="ttdoc">Flow sensitive DDA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00085">PointerAnalysis.h:85</a></div></div>
766
+ <div class="ttc" id="classSVF_1_1Options_html_abe3087eb48a10bb600d1fd24308c019b"><div class="ttname"><a href="classSVF_1_1Options.html#abe3087eb48a10bb600d1fd24308c019b">SVF::Options::PrintCPts</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCPts</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00101">Options.h:101</a></div></div>
766
767
  </div><!-- fragment -->
767
768
  </div>
768
769
  </div>
@@ -795,12 +796,12 @@ Private Attributes</h2></td></tr>
795
796
  <p>solve function pointer</p>
796
797
  <p>allow user specify queries </p>
797
798
 
798
- <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00071">71</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
799
- <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a>.empty())</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> == <span class="stringliteral">&quot;funptr&quot;</span>)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FunptrDDAClient.html">FunptrDDAClient</a>(module);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> == <span class="stringliteral">&quot;alias&quot;</span>)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AliasDDAClient.html">AliasDDAClient</a>(module);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a> != <span class="stringliteral">&quot;all&quot;</span>)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> buf; <span class="comment">// Have a buffer</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; stringstream ss(<a class="code" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">Options::UserInputQuery</a>); <span class="comment">// Insert the user input string into a stream</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">while</span> (ss &gt;&gt; buf)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">setQuery</a>(buf);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Please specify query options!&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">initialise</a>(module);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="ttc" id="classSVF_1_1FunptrDDAClient_html"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html">SVF::FunptrDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00125">DDAClient.h:125</a></div></div>
799
+ <p class="definition">Definition at line <a class="el" href="DDAPass_8cpp_source.html#l00072">72</a> of file <a class="el" href="DDAPass_8cpp_source.html">DDAPass.cpp</a>.</p>
800
+ <div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">Options::UserInputQuery</a>().empty())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">Options::UserInputQuery</a>() == <span class="stringliteral">&quot;funptr&quot;</span>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FunptrDDAClient.html">FunptrDDAClient</a>(module);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">Options::UserInputQuery</a>() == <span class="stringliteral">&quot;alias&quot;</span>)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AliasDDAClient.html">AliasDDAClient</a>(module);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>(module);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">Options::UserInputQuery</a>() != <span class="stringliteral">&quot;all&quot;</span>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> buf; <span class="comment">// Have a buffer</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; stringstream ss(<a class="code" href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">Options::UserInputQuery</a>()); <span class="comment">// Insert the user input string into a stream</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">while</span> (ss &gt;&gt; buf)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">setQuery</a>(buf);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Please specify query options!&quot;</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">initialise</a>(module);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="classSVF_1_1FunptrDDAClient_html"><div class="ttname"><a href="classSVF_1_1FunptrDDAClient.html">SVF::FunptrDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00125">DDAClient.h:125</a></div></div>
801
+ <div class="ttc" id="classSVF_1_1Options_html_a5d14e81336dbfefa14146bf610989e6b"><div class="ttname"><a href="classSVF_1_1Options.html#a5d14e81336dbfefa14146bf610989e6b">SVF::Options::UserInputQuery</a></div><div class="ttdeci">static const Option&lt; std::string &gt; UserInputQuery</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00098">Options.h:98</a></div></div>
800
802
  <div class="ttc" id="classSVF_1_1DDAClient_html_a40f6d8769db41f4c907fe5b615e5df83"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a40f6d8769db41f4c907fe5b615e5df83">SVF::DDAClient::initialise</a></div><div class="ttdeci">virtual void initialise(SVFModule *)</div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00055">DDAClient.h:55</a></div></div>
801
803
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
802
804
  <div class="ttc" id="classSVF_1_1DDAPass_html_a8bb61315bc5d1816f4e07140864af47f"><div class="ttname"><a href="classSVF_1_1DDAPass.html#a8bb61315bc5d1816f4e07140864af47f">SVF::DDAPass::_client</a></div><div class="ttdeci">DDAClient * _client</div><div class="ttdoc">DDA client used. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00093">DDAPass.h:93</a></div></div>
803
- <div class="ttc" id="classSVF_1_1Options_html_a3c3d704c209c4e6eed1a771caf8214ce"><div class="ttname"><a href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">SVF::Options::UserInputQuery</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std ::string &gt; UserInputQuery</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00098">Options.h:98</a></div></div>
804
805
  <div class="ttc" id="classSVF_1_1AliasDDAClient_html"><div class="ttname"><a href="classSVF_1_1AliasDDAClient.html">SVF::AliasDDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00144">DDAClient.h:144</a></div></div>
805
806
  <div class="ttc" id="classSVF_1_1DDAClient_html"><div class="ttname"><a href="classSVF_1_1DDAClient.html">SVF::DDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00048">DDAClient.h:48</a></div></div>
806
807
  <div class="ttc" id="classSVF_1_1DDAClient_html_a3d0f732e284f3237287b375582c0aa88"><div class="ttname"><a href="classSVF_1_1DDAClient.html#a3d0f732e284f3237287b375582c0aa88">SVF::DDAClient::setQuery</a></div><div class="ttdeci">void setQuery(NodeID ptr)</div><div class="ttdoc">Set pointer to be queried by DDA analysis. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00089">DDAClient.h:89</a></div></div>