svf-tools 1.0.581 → 1.0.583

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 (286) hide show
  1. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -2
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -5
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -5
  5. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -2
  6. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +32 -30
  7. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +11 -11
  8. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +11 -11
  9. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +15 -16
  10. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +10 -10
  11. package/SVF-doxygen/html/html/CFLBase_8h_source.html +11 -9
  12. package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +3 -3
  13. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +23 -21
  14. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +70 -66
  15. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +28 -262
  16. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  17. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
  18. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +10 -10
  19. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +37 -20
  20. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +22 -19
  21. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +18 -15
  22. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +10 -10
  23. package/SVF-doxygen/html/html/CFLStat_8h_source.html +8 -11
  24. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -3
  25. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -3
  26. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -4
  29. package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
  30. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -2
  31. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -7
  32. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -3
  34. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -4
  36. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -3
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -2
  39. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -2
  40. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -3
  41. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -2
  42. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -5
  43. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -5
  44. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +4 -4
  47. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -2
  48. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -2
  49. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -2
  54. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -2
  55. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -3
  56. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -2
  57. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -2
  58. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -2
  59. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -2
  60. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -2
  61. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -2
  62. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -4
  63. package/SVF-doxygen/html/html/MTA_8h_source.html +1 -2
  64. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -2
  65. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -3
  66. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -3
  67. package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -3
  68. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -2
  69. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +6 -6
  70. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -2
  73. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +1 -3
  74. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -3
  75. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -3
  77. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -2
  78. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -2
  79. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -2
  80. package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
  81. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -2
  82. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -2
  83. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -2
  84. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +2 -2
  85. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -2
  86. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -2
  87. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -2
  90. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
  91. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  92. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -5
  93. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -6
  94. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -3
  95. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -3
  96. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +3 -3
  99. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  102. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +58 -56
  109. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +4 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +47 -42
  111. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +4 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +79 -26
  113. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +19 -18
  114. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +43 -20
  115. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +24 -24
  116. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +40 -37
  117. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +55 -49
  118. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +15 -15
  119. package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +19 -9
  120. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +379 -20
  121. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +12 -9
  122. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +144 -53
  123. package/SVF-doxygen/html/html/classSVF_1_1CFLStat-members.html +31 -32
  124. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +50 -78
  125. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +2 -0
  126. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +14 -10
  127. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +5 -7
  128. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +8 -17
  132. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -5
  133. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  135. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +6 -10
  136. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +13 -14
  138. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  139. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -5
  140. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +6 -10
  141. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -4
  142. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +23 -19
  144. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +197 -78
  145. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +5 -5
  146. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +2 -2
  149. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -2
  150. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -5
  153. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +5 -8
  155. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -7
  156. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -6
  157. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -6
  158. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -2
  159. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +13 -25
  160. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +6 -10
  166. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  167. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -6
  168. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +2 -3
  170. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -2
  174. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +1 -2
  176. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +2 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +14 -20
  182. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +4 -5
  183. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -2
  184. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  185. package/SVF-doxygen/html/html/functions.html +0 -3
  186. package/SVF-doxygen/html/html/functions_a.html +14 -4
  187. package/SVF-doxygen/html/html/functions_c.html +38 -30
  188. package/SVF-doxygen/html/html/functions_e.html +4 -1
  189. package/SVF-doxygen/html/html/functions_f.html +6 -6
  190. package/SVF-doxygen/html/html/functions_func.html +16 -6
  191. package/SVF-doxygen/html/html/functions_func_c.html +29 -27
  192. package/SVF-doxygen/html/html/functions_func_g.html +25 -16
  193. package/SVF-doxygen/html/html/functions_func_i.html +8 -4
  194. package/SVF-doxygen/html/html/functions_func_p.html +4 -1
  195. package/SVF-doxygen/html/html/functions_func_r.html +8 -2
  196. package/SVF-doxygen/html/html/functions_func_s.html +12 -9
  197. package/SVF-doxygen/html/html/functions_g.html +23 -14
  198. package/SVF-doxygen/html/html/functions_i.html +20 -13
  199. package/SVF-doxygen/html/html/functions_l.html +5 -5
  200. package/SVF-doxygen/html/html/functions_n.html +9 -4
  201. package/SVF-doxygen/html/html/functions_o.html +21 -10
  202. package/SVF-doxygen/html/html/functions_p.html +16 -17
  203. package/SVF-doxygen/html/html/functions_r.html +7 -1
  204. package/SVF-doxygen/html/html/functions_s.html +8 -5
  205. package/SVF-doxygen/html/html/functions_t.html +3 -3
  206. package/SVF-doxygen/html/html/functions_type_c.html +6 -0
  207. package/SVF-doxygen/html/html/functions_vars.html +0 -3
  208. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  209. package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
  210. package/SVF-doxygen/html/html/functions_vars_n.html +6 -1
  211. package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
  212. package/SVF-doxygen/html/html/functions_w.html +11 -11
  213. package/SVF-doxygen/html/html/globals_a.html +0 -4
  214. package/SVF-doxygen/html/html/globals_c.html +7 -8
  215. package/SVF-doxygen/html/html/globals_e.html +1 -2
  216. package/SVF-doxygen/html/html/globals_f.html +4 -8
  217. package/SVF-doxygen/html/html/globals_g.html +4 -8
  218. package/SVF-doxygen/html/html/globals_l.html +2 -8
  219. package/SVF-doxygen/html/html/globals_m.html +1 -4
  220. package/SVF-doxygen/html/html/globals_s.html +3 -6
  221. package/SVF-doxygen/html/html/globals_v.html +1 -4
  222. package/SVF-doxygen/html/html/globals_vars.html +22 -55
  223. package/SVF-doxygen/html/html/menudata.js +0 -1
  224. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  225. package/SVF-doxygen/html/html/namespaceSVF.html +4 -4
  226. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -3
  227. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +9 -15
  228. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  229. package/SVF-doxygen/html/html/search/all_0.js +0 -1
  230. package/SVF-doxygen/html/html/search/all_1.js +6 -3
  231. package/SVF-doxygen/html/html/search/all_10.js +7 -6
  232. package/SVF-doxygen/html/html/search/all_11.js +3 -1
  233. package/SVF-doxygen/html/html/search/all_12.js +10 -9
  234. package/SVF-doxygen/html/html/search/all_13.js +6 -6
  235. package/SVF-doxygen/html/html/search/all_15.js +3 -4
  236. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  237. package/SVF-doxygen/html/html/search/all_3.js +8 -5
  238. package/SVF-doxygen/html/html/search/all_5.js +2 -1
  239. package/SVF-doxygen/html/html/search/all_6.js +3 -4
  240. package/SVF-doxygen/html/html/search/all_7.js +7 -5
  241. package/SVF-doxygen/html/html/search/all_9.js +6 -4
  242. package/SVF-doxygen/html/html/search/all_c.js +4 -5
  243. package/SVF-doxygen/html/html/search/all_d.js +1 -2
  244. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  245. package/SVF-doxygen/html/html/search/all_f.js +3 -2
  246. package/SVF-doxygen/html/html/search/functions_0.js +4 -1
  247. package/SVF-doxygen/html/html/search/functions_10.js +2 -0
  248. package/SVF-doxygen/html/html/search/functions_11.js +1 -0
  249. package/SVF-doxygen/html/html/search/functions_2.js +3 -2
  250. package/SVF-doxygen/html/html/search/functions_6.js +3 -0
  251. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  252. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  253. package/SVF-doxygen/html/html/search/typedefs_2.js +2 -0
  254. package/SVF-doxygen/html/html/search/variables_0.js +0 -1
  255. package/SVF-doxygen/html/html/search/variables_1.js +1 -2
  256. package/SVF-doxygen/html/html/search/variables_12.js +1 -2
  257. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  258. package/SVF-doxygen/html/html/search/variables_15.js +1 -2
  259. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  260. package/SVF-doxygen/html/html/search/variables_5.js +2 -1
  261. package/SVF-doxygen/html/html/search/variables_6.js +1 -2
  262. package/SVF-doxygen/html/html/search/variables_7.js +4 -5
  263. package/SVF-doxygen/html/html/search/variables_9.js +2 -1
  264. package/SVF-doxygen/html/html/search/variables_c.js +1 -3
  265. package/SVF-doxygen/html/html/search/variables_d.js +0 -1
  266. package/SVF-doxygen/html/html/search/variables_e.js +3 -2
  267. package/SVF-doxygen/html/html/search/variables_f.js +1 -0
  268. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +3 -3
  269. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +4 -4
  270. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
  271. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
  272. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
  273. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  274. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  275. package/include/CFL/CFLBase.h +2 -0
  276. package/include/CFL/CFLGrammar.h +13 -0
  277. package/include/CFL/CFLGrammar.txt +9 -33
  278. package/include/CFL/CFLSolver.h +8 -0
  279. package/include/CFL/CFLStat.h +3 -13
  280. package/include/Graphs/CFLGraph.h +69 -0
  281. package/lib/CFL/CFGNormalizer.cpp +1 -0
  282. package/lib/CFL/CFLAlias.cpp +5 -0
  283. package/lib/CFL/CFLGrammar.cpp +34 -1
  284. package/lib/CFL/CFLSolver.cpp +58 -45
  285. package/lib/CFL/CFLStat.cpp +20 -66
  286. package/package.json +1 -1
@@ -339,7 +339,7 @@ Functions</h2></td></tr>
339
339
  <tr class="memitem:a28c0ede7e4765d2a686fc8ae0f5641a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</td></tr>
340
340
  <tr class="memdesc:a28c0ede7e4765d2a686fc8ae0f5641a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return source code including line number and file name from debug information. <a href="#a28c0ede7e4765d2a686fc8ae0f5641a4">More...</a><br /></td></tr>
341
341
  <tr class="separator:a28c0ede7e4765d2a686fc8ae0f5641a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
342
- <tr class="memitem:a86c1c8bdfc1075c07c631525555194d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
342
+ <tr class="memitem:a86c1c8bdfc1075c07c631525555194d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
343
343
  <tr class="separator:a86c1c8bdfc1075c07c631525555194d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
344
344
  <tr class="memitem:a7486fd8e5350879ed1cbd835c0d4e191"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *value)</td></tr>
345
345
  <tr class="separator:a7486fd8e5350879ed1cbd835c0d4e191"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1665,9 +1665,8 @@ template&lt;class X , class Y &gt; </div>
1665
1665
  <p>Get source code line number of a function according to debug info </p>
1666
1666
 
1667
1667
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00248">248</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
1668
- <div class="fragment"><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; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> * https://reviews.llvm.org/D18074?id=50385</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> * looks like the relevant</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a89c7208bfc0b57873dfa574f52050295">llvm::DISubprogram</a> *SP = <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;getSubprogram())</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (SP-&gt;describes(<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>))</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;in line: &quot;</span> &lt;&lt; SP-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; file: &quot;</span> &lt;&lt; SP-&gt;getFilename();</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">return</span> rawstr.str();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
1668
+ <div class="fragment"><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; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment"> * https://reviews.llvm.org/D18074?id=50385</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> * looks like the relevant</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a89c7208bfc0b57873dfa574f52050295">llvm::DISubprogram</a> *SP = F-&gt;getSubprogram())</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (SP-&gt;describes(F))</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;in line: &quot;</span> &lt;&lt; SP-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; file: &quot;</span> &lt;&lt; SP-&gt;getFilename();</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">return</span> rawstr.str();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
1669
1669
  <div class="ttc" id="namespaceSVF_html_a89c7208bfc0b57873dfa574f52050295"><div class="ttname"><a href="namespaceSVF.html#a89c7208bfc0b57873dfa574f52050295">SVF::DISubprogram</a></div><div class="ttdeci">llvm::DISubprogram DISubprogram</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
1670
- <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
1671
1670
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
1672
1671
  </div><!-- fragment -->
1673
1672
  </div>
@@ -93,13 +93,13 @@ Functions</h2></td></tr>
93
93
  <tr class="separator:a1e99d5cf28e0d6546e0d85b805a7e371"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
94
  <tr class="memitem:aca6465c72effcaddeb34f55da4555754"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
95
95
  <tr class="separator:aca6465c72effcaddeb34f55da4555754"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
- <tr class="memitem:ad6f9578cdce518141772a11617160da8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
96
+ <tr class="memitem:ad6f9578cdce518141772a11617160da8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
97
97
  <tr class="separator:ad6f9578cdce518141772a11617160da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
- <tr class="memitem:af19bec54621f4605bac4feaf9f73803c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
98
+ <tr class="memitem:af19bec54621f4605bac4feaf9f73803c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
99
99
  <tr class="separator:af19bec54621f4605bac4feaf9f73803c"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
- <tr class="memitem:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
100
+ <tr class="memitem:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
101
101
  <tr class="separator:a917c4bd2d5fd1354b5069bf0a68533d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
- <tr class="memitem:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
102
+ <tr class="memitem:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F)</td></tr>
103
103
  <tr class="separator:ac9c6d4315e7a1a826add7ed9cf924553"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
104
  <tr class="memitem:a26c3ceb82a398663284690c898a5354d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">getConstructorThisPtr</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun)</td></tr>
105
105
  <tr class="separator:a26c3ceb82a398663284690c898a5354d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -298,9 +298,8 @@ Functions</h2></td></tr>
298
298
  </div><div class="memdoc">
299
299
 
300
300
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00291">291</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
301
- <div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;bb:*<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;inst: bb)</div><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; <span class="keywordflow">if</span> (llvm::isa&lt;CallInst&gt;(inst) || llvm::isa&lt;InvokeInst&gt;(inst)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; || llvm::isa&lt;CallBrInst&gt;(inst))</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(&amp;inst));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// assert(cs.getCalledFunction() &amp;&amp;</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// &quot;Indirect call detected in thunk func&quot;);</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// assert(ret == nullptr &amp;&amp; &quot;multiple callsites in thunk func&quot;);</span></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; ret = cs.getCalledFunction();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
301
+ <div class="fragment"><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;bb:*F)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;inst: bb)</div><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; <span class="keywordflow">if</span> (llvm::isa&lt;CallInst&gt;(inst) || llvm::isa&lt;InvokeInst&gt;(inst)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; || llvm::isa&lt;CallBrInst&gt;(inst))</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(&amp;inst));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// assert(cs.getCalledFunction() &amp;&amp;</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// &quot;Indirect call detected in thunk func&quot;);</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// assert(ret == nullptr &amp;&amp; &quot;multiple callsites in thunk func&quot;);</span></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; ret = cs.getCalledFunction();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
302
302
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00294">BasicTypes.h:294</a></div></div>
303
- <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
304
303
  </div><!-- fragment -->
305
304
  </div>
306
305
  </div>
@@ -397,12 +396,11 @@ Functions</h2></td></tr>
397
396
  <p>TODO: on mac os function name is an empty string after demangling </p>
398
397
 
399
398
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00454">454</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
400
- <div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;isDeclaration())</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">string</span> funcName = <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;getName().str();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">&quot;::&quot;</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() &gt; 0 &amp;&amp; (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>) == 0))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
399
+ <div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span> (F-&gt;isDeclaration())</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">string</span> funcName = F-&gt;getName().str();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">&quot;::&quot;</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() &gt; 0 &amp;&amp; (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>) == 0))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
401
400
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00049">CPPUtil.h:49</a></div></div>
402
401
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00048">CPPUtil.h:48</a></div></div>
403
402
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &amp;name)</div></div>
404
403
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &amp;name)</div></div>
405
- <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
406
404
  <div class="ttc" id="CPPUtil_8cpp_html_a74958d1db4b08e58aee58557d386c24b"><div class="ttname"><a href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a></div><div class="ttdeci">const string vfunPreLabel</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00048">CPPUtil.cpp:48</a></div></div>
407
405
  </div><!-- fragment -->
408
406
  </div>
@@ -424,10 +422,9 @@ Functions</h2></td></tr>
424
422
  </div><div class="memdoc">
425
423
 
426
424
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00285">285</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
427
- <div class="fragment"><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; <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">cppUtil::demangle</a>(<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;getName().str());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_af6117df8aec7f4c077058fa8f00b0243"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">SVF::cppUtil::DemangledName::isThunkFunc</a></div><div class="ttdeci">bool isThunkFunc</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00050">CPPUtil.h:50</a></div></div>
425
+ <div class="fragment"><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; <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">cppUtil::demangle</a>(F-&gt;getName().str());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_af6117df8aec7f4c077058fa8f00b0243"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">SVF::cppUtil::DemangledName::isThunkFunc</a></div><div class="ttdeci">bool isThunkFunc</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00050">CPPUtil.h:50</a></div></div>
428
426
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
429
427
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &amp;name)</div></div>
430
- <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
431
428
  </div><!-- fragment -->
432
429
  </div>
433
430
  </div>
@@ -448,12 +445,11 @@ Functions</h2></td></tr>
448
445
  </div><div class="memdoc">
449
446
 
450
447
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00486">486</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
451
- <div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;isDeclaration())</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">string</span> funcName = <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>-&gt;getName().str();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">&quot;::&quot;</span>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() &gt; 0 &amp;&amp; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &gt; 0 &amp;&amp;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() + 1 == dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &amp;&amp;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.compare(0, 1, <span class="stringliteral">&quot;~&quot;</span>) == 0 &amp;&amp;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.substr(1)) == 0)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
448
+ <div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (F-&gt;isDeclaration())</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">string</span> funcName = F-&gt;getName().str();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (funcName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a>) != 0)</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">cppUtil::DemangledName</a> dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(funcName.c_str());</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() == 0)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordtype">size_t</span> colon = dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.rfind(<span class="stringliteral">&quot;::&quot;</span>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">if</span> (colon == string::npos)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a> = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.substr(colon+2));</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() &gt; 0 &amp;&amp; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &gt; 0 &amp;&amp;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.size() + 1 == dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.size() &amp;&amp;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.compare(0, 1, <span class="stringliteral">&quot;~&quot;</span>) == 0 &amp;&amp;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>.compare(dname.<a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>.substr(1)) == 0)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;}</div><div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
452
449
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00049">CPPUtil.h:49</a></div></div>
453
450
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00048">CPPUtil.h:48</a></div></div>
454
451
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &amp;name)</div></div>
455
452
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &amp;name)</div></div>
456
- <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
457
453
  <div class="ttc" id="CPPUtil_8cpp_html_a74958d1db4b08e58aee58557d386c24b"><div class="ttname"><a href="CPPUtil_8cpp.html#a74958d1db4b08e58aee58557d386c24b">vfunPreLabel</a></div><div class="ttdeci">const string vfunPreLabel</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00048">CPPUtil.cpp:48</a></div></div>
458
454
  </div><!-- fragment -->
459
455
  </div>
@@ -514,9 +510,7 @@ Functions</h2></td></tr>
514
510
  <p>define linkonce_odr dso_local void ::B1()(class.B1* this) unnamed_addr #6 comdat this.addr = alloca class.B1*, align 8 store class.B1* this, class.B1** this.addr, align 8 this1 = load class.B1*, class.B1** this.addr, align 8 %0 = bitcast class.B1* this1 to class.A* call void ::A()(class.A* %0) </p>
515
511
 
516
512
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00339">339</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
517
- <div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisU : thisPtr1-&gt;users())</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> *<a class="code" href="CFLGrammar_8txt.html#a92d5a256d74eadeb5bfa131b84067f0d">store</a> = SVFUtil::dyn_cast&lt;StoreInst&gt;(thisU))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *storeU : <a class="code" href="CFLGrammar_8txt.html#a92d5a256d74eadeb5bfa131b84067f0d">store</a>-&gt;getPointerOperand()-&gt;users())</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *<a class="code" href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a> = SVFUtil::dyn_cast&lt;LoadInst&gt;(storeU))</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a>-&gt;getNextNode() &amp;&amp; SVFUtil::isa&lt;CastInst&gt;(<a class="code" href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a>-&gt;getNextNode()))</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;CastInst&gt;(<a class="code" href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a>-&gt;getNextNode()) == (thisPtr2-&gt;stripPointerCasts());</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00098">BasicTypes.h:98</a></div></div>
518
- <div class="ttc" id="CFLGrammar_8txt_html_af94ae7efab42c57589a313f6cc7ada63"><div class="ttname"><a href="CFLGrammar_8txt.html#af94ae7efab42c57589a313f6cc7ada63">load</a></div><div class="ttdeci">F F store V load</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00009">CFLGrammar.txt:9</a></div></div>
519
- <div class="ttc" id="CFLGrammar_8txt_html_a92d5a256d74eadeb5bfa131b84067f0d"><div class="ttname"><a href="CFLGrammar_8txt.html#a92d5a256d74eadeb5bfa131b84067f0d">store</a></div><div class="ttdeci">Memflow load store</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00030">CFLGrammar.txt:30</a></div></div>
513
+ <div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span> (thisPtr1 == thisPtr2)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisU : thisPtr1-&gt;users())</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> *store = SVFUtil::dyn_cast&lt;StoreInst&gt;(thisU))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *storeU : store-&gt;getPointerOperand()-&gt;users())</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *load = SVFUtil::dyn_cast&lt;LoadInst&gt;(storeU))</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">if</span>(load-&gt;getNextNode() &amp;&amp; SVFUtil::isa&lt;CastInst&gt;(load-&gt;getNextNode()))</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> SVFUtil::cast&lt;CastInst&gt;(load-&gt;getNextNode()) == (thisPtr2-&gt;stripPointerCasts());</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00098">BasicTypes.h:98</a></div></div>
520
514
  <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
521
515
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
522
516
  </div><!-- fragment -->
@@ -68,7 +68,7 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="saber_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- saber.cpp -- Source-sink bug checker------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // Saber: Software Bug Check.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FileChecker_8h.html">SABER/FileChecker.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DoubleFreeChecker_8h.html">SABER/DoubleFreeChecker.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;&lt;input bitcode&gt;&quot;</span>), llvm::cl::init(<span class="stringliteral">&quot;-&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>(<span class="stringliteral">&quot;leak&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Memory Leak Detection&quot;</span>));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>(<span class="stringliteral">&quot;fileck&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;File Open/Close Detection&quot;</span>));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;bool&gt; <a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>(<span class="stringliteral">&quot;dfree&quot;</span>, llvm::cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;Double Free Detection&quot;</span>));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 52</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="stringliteral">&quot;Source-Sink Bug Detector\n&quot;</span>);</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">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a> *saber;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FileChecker.html">FileChecker</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DoubleFreeChecker.html">DoubleFreeChecker</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; saber = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>(); <span class="comment">// if no checker is specified, we use leak checker as the default one.</span></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; saber-&gt;<a class="code" href="classSVF_1_1LeakChecker.html#ab3bb79d88d73c8b881d714921e7b5e12">runOnModule</a>(svfModule);</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; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="classSVF_1_1LeakChecker_html"><div class="ttname"><a href="classSVF_1_1LeakChecker.html">SVF::LeakChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00042">LeakChecker.h:42</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1DoubleFreeChecker_html"><div class="ttname"><a href="classSVF_1_1DoubleFreeChecker.html">SVF::DoubleFreeChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="DoubleFreeChecker_8h_source.html#l00042">DoubleFreeChecker.h:42</a></div></div>
71
- <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00123">CFLGraph.h:123</a></div></div>
71
+ <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00192">CFLGraph.h:192</a></div></div>
72
72
  <div class="ttc" id="saber_8cpp_html_a2d332c504284f0bc181289ee67479845"><div class="ttname"><a href="saber_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt&lt; std::string &gt; InputFilename(cl::Positional, llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;), llvm::cl::init(&quot;-&quot;))</div></div>
73
73
  <div class="ttc" id="FileChecker_8h_html"><div class="ttname"><a href="FileChecker_8h.html">FileChecker.h</a></div></div>
74
74
  <div class="ttc" id="saber_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="saber_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="saber_8cpp_source.html#l00052">saber.cpp:52</a></div></div>
@@ -43,7 +43,6 @@ var searchData=
43
43
  ['_5fnumofactualoutsvfgnodeshaveinout',['_NumOfActualOutSVFGNodesHaveInOut',['../classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e',1,'SVF::FlowSensitiveStat']]],
44
44
  ['_5fnumofaddrtakevar',['_NumOfAddrTakeVar',['../classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7',1,'SVF::FlowSensitiveStat']]],
45
45
  ['_5fnumofblackholeptr',['_NumOfBlackholePtr',['../classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407',1,'SVF::DDAStat::_NumOfBlackholePtr()'],['../classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7',1,'SVF::AndersenStat::_NumOfBlackholePtr()'],['../classSVF_1_1FlowSensitiveStat.html#a74ab9e235e08e4840223ddf0599a9da7',1,'SVF::FlowSensitiveStat::_NumOfBlackholePtr()']]],
46
- ['_5fnumofcflgraphnode',['_NumofCFLGraphNode',['../classSVF_1_1CFLStat.html#a99aa7227148c3df700542aec0b8ae98d',1,'SVF::CFLStat']]],
47
46
  ['_5fnumofconstantptr',['_NumOfConstantPtr',['../classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d',1,'SVF::DDAStat::_NumOfConstantPtr()'],['../classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67',1,'SVF::AndersenStat::_NumOfConstantPtr()'],['../classSVF_1_1FlowSensitiveStat.html#a767a935ec5bacd97f4fa79a05c165cc2',1,'SVF::FlowSensitiveStat::_NumOfConstantPtr()']]],
48
47
  ['_5fnumofcycles',['_NumOfCycles',['../classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21',1,'SVF::AndersenStat']]],
49
48
  ['_5fnumofdpm',['_NumOfDPM',['../classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa',1,'SVF::DDAStat']]],
@@ -158,6 +158,8 @@ var searchData=
158
158
  ['addindirectforkedge',['addIndirectForkEdge',['../classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7',1,'SVF::ThreadCallGraph']]],
159
159
  ['addindirectparforedge',['addIndirectParForEdge',['../classSVF_1_1ThreadCallGraph.html#a9258b680de64d8d2fdd1cb9aed8ae428',1,'SVF::ThreadCallGraph']]],
160
160
  ['addinedge',['addInEdge',['../classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618',1,'SVF::SVFVar']]],
161
+ ['addinedgewithkind',['addInEdgeWithKind',['../classSVF_1_1CFLNode.html#a2c4c59e6c12a2a0efb1d58702c7062c2',1,'SVF::CFLNode']]],
162
+ ['addingoingedge',['addIngoingEdge',['../classSVF_1_1CFLNode.html#a0d01ba68e875806fa24d7c1369924da5',1,'SVF::CFLNode']]],
161
163
  ['addinicfgedge',['addInICFGEdge',['../classSVF_1_1SVFLoop.html#ae55b0dee93fb4298a1544d09312a258d',1,'SVF::SVFLoop']]],
162
164
  ['addinstances',['addInstances',['../classSVF_1_1CHGraph.html#a5ee7e559425045f3af5c35ea6d6f03ee',1,'SVF::CHGraph']]],
163
165
  ['addinteredgefromaptofp',['addInterEdgeFromAPToFP',['../classSVF_1_1VFG.html#a6fd24c001a6daedf591974ba27140461',1,'SVF::VFG::addInterEdgeFromAPToFP(ActualParmVFGNode *src, FormalParmVFGNode *dst, CallSiteID csId)'],['../classSVF_1_1VFG.html#a185ed4079babc0e0f72c4bf223342ee2',1,'SVF::VFG::addInterEdgeFromAPToFP(NodeID src, NodeID dst, CallSiteID csId)']]],
@@ -206,10 +208,11 @@ var searchData=
206
208
  ['addoffsetvalue',['addOffsetValue',['../classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b',1,'SVF::LocationSet']]],
207
209
  ['addopvar',['addOpVar',['../classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37',1,'SVF::PhiStmt']]],
208
210
  ['addoutedge',['addOutEdge',['../classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f',1,'SVF::SVFVar']]],
211
+ ['addoutedgewithkind',['addOutEdgeWithKind',['../classSVF_1_1CFLNode.html#a22578acf04df6b655766f9a9d54f18d5',1,'SVF::CFLNode']]],
209
212
  ['addoutgoingaddredge',['addOutgoingAddrEdge',['../classSVF_1_1ConstraintNode.html#af129941c522dbc1b0fe94f84eea0d97a',1,'SVF::ConstraintNode']]],
210
213
  ['addoutgoingcopyedge',['addOutgoingCopyEdge',['../classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f',1,'SVF::ConstraintNode']]],
211
214
  ['addoutgoingdirectedge',['addOutgoingDirectEdge',['../classSVF_1_1ConstraintNode.html#a230e89618c562c7aed63b4457ec69637',1,'SVF::ConstraintNode']]],
212
- ['addoutgoingedge',['addOutgoingEdge',['../classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b',1,'SVF::GenericNode']]],
215
+ ['addoutgoingedge',['addOutgoingEdge',['../classSVF_1_1CFLNode.html#a7bea51b304d0aa2f3a9669252ceda46d',1,'SVF::CFLNode::addOutgoingEdge()'],['../classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b',1,'SVF::GenericNode::addOutgoingEdge()']]],
213
216
  ['addoutgoinggepedge',['addOutgoingGepEdge',['../classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6',1,'SVF::ConstraintNode']]],
214
217
  ['addoutgoingloadedge',['addOutgoingLoadEdge',['../classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53',1,'SVF::ConstraintNode']]],
215
218
  ['addoutgoingstoreedge',['addOutgoingStoreEdge',['../classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5',1,'SVF::ConstraintNode']]],
@@ -221,8 +224,8 @@ var searchData=
221
224
  ['addptrelementtype',['addptrElementType',['../classSVF_1_1SVFModule.html#a4ca35d1a1c7fe2152bb11681624f27ac',1,'SVF::SVFModule']]],
222
225
  ['addptrinuncalledfunction',['addPtrInUncalledFunction',['../classSVF_1_1SVFModule.html#ad09d9748b6e3fd1be3a751f7aeef68a8',1,'SVF::SVFModule']]],
223
226
  ['addpts',['addPts',['../classSVF_1_1PTData.html#ac1b9dc035fb0bdf468c7d14b9f9d437a',1,'SVF::PTData::addPts()'],['../classSVF_1_1VersionedPTData.html#ae00316730227769a39b22d3df1b6d38a',1,'SVF::VersionedPTData::addPts()'],['../classSVF_1_1MutablePTData.html#aab4a2eec11e83beca70b016102431ab1',1,'SVF::MutablePTData::addPts(const Key &amp;dstKey, const Data &amp;element) override'],['../classSVF_1_1MutablePTData.html#a8cdeda0ef0e976102d05de3004bd8c8a',1,'SVF::MutablePTData::addPts(DataSet &amp;d, const Data &amp;e)'],['../classSVF_1_1MutableDiffPTData.html#a717c166c5efdf2e1d71be1772fc0898d',1,'SVF::MutableDiffPTData::addPts()'],['../classSVF_1_1MutableDFPTData.html#ab75373d16f57dbbf1e9472e9a27d6b4b',1,'SVF::MutableDFPTData::addPts(const Key &amp;dstKey, const Key &amp;srcKey) override'],['../classSVF_1_1MutableDFPTData.html#ab7d1a3464e561029573f6f3c13c9bff4',1,'SVF::MutableDFPTData::addPts(DataSet &amp;d, const Data &amp;e)'],['../classSVF_1_1MutableVersionedPTData.html#a00a88cc3e802921c6a0951801ec712a6',1,'SVF::MutableVersionedPTData::addPts(const Key &amp;k, const Data &amp;element) override'],['../classSVF_1_1MutableVersionedPTData.html#af39232f64ff0ede20161c7f265da6cf5',1,'SVF::MutableVersionedPTData::addPts(const VersionedKey &amp;vk, const Data &amp;element) override'],['../classSVF_1_1PersistentPTData.html#a8d53322eadc657ed88a8b724647070b2',1,'SVF::PersistentPTData::addPts()'],['../classSVF_1_1PersistentDiffPTData.html#a9f748619f67f3ff9c4c4a429e6614989',1,'SVF::PersistentDiffPTData::addPts()'],['../classSVF_1_1PersistentDFPTData.html#a95df7d565ba8e990b61b1c932c8d4273',1,'SVF::PersistentDFPTData::addPts()'],['../classSVF_1_1PersistentVersionedPTData.html#a7f3730473af9218bea520ec0498fb4ac',1,'SVF::PersistentVersionedPTData::addPts(const Key &amp;k, const Data &amp;element) override'],['../classSVF_1_1PersistentVersionedPTData.html#ae4877cf4db5b1da5e7d05fe65ae8ed32',1,'SVF::PersistentVersionedPTData::addPts(const VersionedKey &amp;vk, const Data &amp;element) override'],['../classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff',1,'SVF::BVDataPTAImpl::addPts()'],['../classSVF_1_1CondPTAImpl.html#a08037f32b927fe2e6be47a61a060463c',1,'SVF::CondPTAImpl::addPts()']]],
224
- ['addr',['Addr',['../classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3',1,'SVF::ConstraintEdge::Addr()'],['../classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75af866301a661c59a7aa3182c0a7fc0c92',1,'SVF::VFGNode::Addr()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197',1,'SVF::SVFStmt::Addr()'],['../CFLGrammar_8txt.html#aae7baac9bf1fe49869f5ab76e07bfd05',1,'addr():&#160;CFLGrammar.txt']]],
225
- ['addrbar',['addrbar',['../CFLGrammar_8txt.html#aaaa1a1b432fa23f6a02aab2fbd2ef7f5',1,'addrbar():&#160;CFLGrammar.txt'],['../PEGGrammar_8txt.html#ac0ba65b20304c39926bf018842207e87',1,'addrbar():&#160;PEGGrammar.txt']]],
227
+ ['addr',['Addr',['../classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3',1,'SVF::ConstraintEdge::Addr()'],['../classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75af866301a661c59a7aa3182c0a7fc0c92',1,'SVF::VFGNode::Addr()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197',1,'SVF::SVFStmt::Addr()']]],
228
+ ['addrbar',['addrbar',['../PEGGrammar_8txt.html#ac0ba65b20304c39926bf018842207e87',1,'PEGGrammar.txt']]],
226
229
  ['addrcgedge',['AddrCGEdge',['../classSVF_1_1AddrCGEdge.html',1,'SVF::AddrCGEdge'],['../classSVF_1_1AddrCGEdge.html#a9c8da69a469e51d83c5009ba2685bcf6',1,'SVF::AddrCGEdge::AddrCGEdge()'],['../classSVF_1_1AddrCGEdge.html#a3e07c316815631b1ddfd35ae3781daab',1,'SVF::AddrCGEdge::AddrCGEdge(const AddrCGEdge &amp;)'],['../classSVF_1_1AddrCGEdge.html#a131779667553499b85423e1932664252',1,'SVF::AddrCGEdge::AddrCGEdge(ConstraintNode *s, ConstraintNode *d, EdgeID id)']]],
227
230
  ['addrcgedgeset',['AddrCGEdgeSet',['../classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc',1,'SVF::ConstraintGraph']]],
228
231
  ['addrefsideeffectofcallsite',['addRefSideEffectOfCallSite',['../classSVF_1_1MRGenerator.html#a83f5087e84eb7a18976cbd3a446605ee',1,'SVF::MRGenerator']]],
@@ -9,7 +9,7 @@ var searchData=
9
9
  ['pagedge',['pagEdge',['../classSVF_1_1StmtVFGNode.html#ab5f48de8258f92bb7b9d411e178beb49',1,'SVF::StmtVFGNode::pagEdge()'],['../namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152',1,'SVF::PAGEdge()']]],
10
10
  ['pagedges',['pagEdges',['../classSVF_1_1ICFGNode.html#a12ce3aabc1bd3bae7caa9be9ec0a6a71',1,'SVF::ICFGNode']]],
11
11
  ['pagedgesetty',['PAGEdgeSetTy',['../classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2',1,'SVF::SVFStmt']]],
12
- ['pagedgetofunmap',['pagEdgeToFunMap',['../classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58',1,'SVF::MRGenerator::pagEdgeToFunMap()'],['../classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31',1,'SVF::MRGenerator::PAGEdgeToFunMap()']]],
12
+ ['pagedgetofunmap',['PAGEdgeToFunMap',['../classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31',1,'SVF::MRGenerator::PAGEdgeToFunMap()'],['../classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58',1,'SVF::MRGenerator::pagEdgeToFunMap()']]],
13
13
  ['pagedgetosetmapty',['PAGEdgeToSetMapTy',['../classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa',1,'SVF::SVFStmt']]],
14
14
  ['pagedgetostmtvfgnodemap',['PAGEdgeToStmtVFGNodeMap',['../classSVF_1_1VFG.html#a462fe6eefc55a436f90f91adeb34726f',1,'SVF::VFG']]],
15
15
  ['pagedgetostmtvfgnodemapty',['PAGEdgeToStmtVFGNodeMapTy',['../classSVF_1_1VFG.html#ab37b067a59b52c472a284eabbeba43ff',1,'SVF::VFG']]],
@@ -191,7 +191,7 @@ var searchData=
191
191
  ['printlockspan',['PrintLockSpan',['../classSVF_1_1Options.html#ab8a9641b660197b4421fbd6141858c58',1,'SVF::Options']]],
192
192
  ['printpathcond',['PrintPathCond',['../classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496',1,'SVF::Options::PrintPathCond()'],['../classSVF_1_1SaberCondAllocator.html#a389fd522c1de5b4feed34f29b9709d03',1,'SVF::SaberCondAllocator::printPathCond()']]],
193
193
  ['printpts',['printPts',['../svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9',1,'svf-ex.cpp']]],
194
- ['printquerypts',['PrintQueryPts',['../classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10',1,'SVF::Options::PrintQueryPts()'],['../classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f',1,'SVF::DDAPass::printQueryPTS()']]],
194
+ ['printquerypts',['printQueryPTS',['../classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f',1,'SVF::DDAPass::printQueryPTS()'],['../classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10',1,'SVF::Options::PrintQueryPts()']]],
195
195
  ['printresults',['printResults',['../classSVF_1_1PCG.html#ab8a16eb34da91f2b7cd5a456653b1da0',1,'SVF::PCG']]],
196
196
  ['printstat',['printStat',['../classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49',1,'SVF::DDAStat::printStat()'],['../classSVF_1_1ICFGStat.html#af9c004e3532968ae806a3d344ef885ea',1,'SVF::ICFGStat::printStat()'],['../classSVF_1_1MemSSAStat.html#ad5fbe23c3374e5b3a45ac5fa4900441a',1,'SVF::MemSSAStat::printStat()'],['../classSVF_1_1SVFGStat.html#a2e0adcfbe233523212e1ffbf5b01ba88',1,'SVF::SVFGStat::printStat()'],['../classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183',1,'SVF::PointerAnalysis::printStat()'],['../classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe',1,'SVF::SVFStat::printStat()'],['../classSVF_1_1AndersenBase.html#a566830d0c7a1f5cd967bb8f2ab168f8d',1,'SVF::AndersenBase::printStat()']]],
197
197
  ['printstatperquery',['printStatPerQuery',['../classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff',1,'SVF::DDAStat::printStatPerQuery()'],['../classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02',1,'SVF::SVFStat::printStatPerQuery()']]],
@@ -206,6 +206,7 @@ var searchData=
206
206
  ['processarguments',['processArguments',['../namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732',1,'SVF::LLVMUtil']]],
207
207
  ['processbasicblocknode',['processBasicBlockNode',['../classSVF_1_1IRAnnotator.html#a6da6bf2db9dd582739e621aefc72025f',1,'SVF::IRAnnotator']]],
208
208
  ['processce',['processCE',['../classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7',1,'SVF::SVFIRBuilder']]],
209
+ ['processcfledge',['processCFLEdge',['../classSVF_1_1CFLSolver.html#a53c873a9243d2ef3e8d5eff1b8081102',1,'SVF::CFLSolver']]],
209
210
  ['processconstantnode',['processConstantNode',['../classSVF_1_1IRAnnotator.html#a0a26b250269a2e38a5507d68fdbe03f4',1,'SVF::IRAnnotator']]],
210
211
  ['processcopy',['processCopy',['../classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2',1,'SVF::Andersen::processCopy()'],['../classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1',1,'SVF::FlowSensitive::processCopy()']]],
211
212
  ['processfunbody',['processFunBody',['../classSVF_1_1ICFGBuilder.html#ab1cc5de5c2ee7acf83e9ae51c7b38cb5',1,'SVF::ICFGBuilder']]],
@@ -263,13 +264,13 @@ var searchData=
263
264
  ['ptacfinfo',['ptaCFInfo',['../classSVF_1_1ForkJoinAnalysis.html#a1c616b61fbe9c713f51f2a44c4208cfa',1,'SVF::ForkJoinAnalysis']]],
264
265
  ['ptacfinfobuilder',['PTACFInfoBuilder',['../classSVF_1_1PTACFInfoBuilder.html',1,'SVF::PTACFInfoBuilder'],['../classSVF_1_1PTACFInfoBuilder.html#abf1c70ba37181884e7848f6a7c6acf2c',1,'SVF::PTACFInfoBuilder::PTACFInfoBuilder()']]],
265
266
  ['ptacgnodeset',['PTACGNodeSet',['../classSVF_1_1TCT.html#afb579a5bdcc0a1c6b075bb9aae36c237',1,'SVF::TCT']]],
266
- ['ptaimplty',['PTAImplTy',['../classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4d',1,'SVF::PointerAnalysis::PTAImplTy()'],['../classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36',1,'SVF::PointerAnalysis::ptaImplTy()']]],
267
+ ['ptaimplty',['ptaImplTy',['../classSVF_1_1PointerAnalysis.html#a5d3c3094e263bf16a4f312a118c1bd36',1,'SVF::PointerAnalysis::ptaImplTy()'],['../classSVF_1_1PointerAnalysis.html#ac0c0855918cb2cdc3d8ebc175acfbd4d',1,'SVF::PointerAnalysis::PTAImplTy()']]],
267
268
  ['ptaname',['PTAName',['../classSVF_1_1ContextDDA.html#afb0ab7fc43e6f0331072419e39ae0606',1,'SVF::ContextDDA::PTAName()'],['../classSVF_1_1FlowDDA.html#ab3edece1bfb076bc01d60829615f2fa9',1,'SVF::FlowDDA::PTAName()'],['../classSVF_1_1PointerAnalysis.html#aed4e5066f6ddef83afaf60adbcc11de0',1,'SVF::PointerAnalysis::PTAName()'],['../classSVF_1_1Andersen.html#ad92dbecc91170b235180e59ba307acda',1,'SVF::Andersen::PTAName()'],['../classSVF_1_1FlowSensitive.html#a4f1a0d533381660055210be1e2d7d72a',1,'SVF::FlowSensitive::PTAName()'],['../classSVF_1_1VersionedFlowSensitive.html#a6e4964389f96667bd69354fd4a742720',1,'SVF::VersionedFlowSensitive::PTAName()']]],
268
269
  ['ptascev',['PTASCEV',['../classSVF_1_1PTASCEV.html',1,'SVF::PTASCEV'],['../classSVF_1_1PTASCEV.html#afb1582fa355f2ae93a877f4f5bed56d3',1,'SVF::PTASCEV::PTASCEV()'],['../classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856',1,'SVF::PTASCEV::PTASCEV(const Value *p, const SCEV *s, ScalarEvolution *SE)'],['../classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70',1,'SVF::PTASCEV::PTASCEV(const PTASCEV &amp;ptase)']]],
269
270
  ['ptastat',['PTAStat',['../classSVF_1_1PTAStat.html',1,'SVF::PTAStat'],['../classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f',1,'SVF::PTAStat::PTAStat()']]],
270
271
  ['ptastat_2ecpp',['PTAStat.cpp',['../PTAStat_8cpp.html',1,'']]],
271
272
  ['ptastat_2eh',['PTAStat.h',['../PTAStat_8h.html',1,'']]],
272
- ['ptaty',['PTATY',['../classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85',1,'SVF::PointerAnalysis::PTATY()'],['../classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4',1,'SVF::PointerAnalysis::ptaTy()']]],
273
+ ['ptaty',['ptaTy',['../classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4',1,'SVF::PointerAnalysis::ptaTy()'],['../classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85',1,'SVF::PointerAnalysis::PTATY()']]],
273
274
  ['ptavector',['PTAVector',['../classSVF_1_1DDAPass.html#acc7ad5d3266cb3e24fba0b4db186348a',1,'SVF::DDAPass::PTAVector()'],['../classSVF_1_1WPAPass.html#ad4e3d480ebcc6bbbb7bcc8dc3df8663e',1,'SVF::WPAPass::PTAVector()'],['../classSVF_1_1WPAPass.html#a72a66ae158793f5d1bcb37b655db4446',1,'SVF::WPAPass::ptaVector()']]],
274
275
  ['ptbackingtype',['PTBackingType',['../classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a',1,'SVF::BVDataPTAImpl']]],
275
276
  ['ptcache',['ptCache',['../classSVF_1_1PersistentPTData.html#a146a25bf9ae76f4c3c117433df9d382f',1,'SVF::PersistentPTData::ptCache()'],['../classSVF_1_1PersistentDiffPTData.html#a444bc59754b4c365327b7ef44baadcd2',1,'SVF::PersistentDiffPTData::ptCache()'],['../classSVF_1_1PersistentDFPTData.html#af86313e37c5177e45456f813b9b46a4f',1,'SVF::PersistentDFPTData::ptCache()'],['../classSVF_1_1BVDataPTAImpl.html#a94acf249e50ad56f966ddad6843c18f8',1,'SVF::BVDataPTAImpl::ptCache()']]],
@@ -286,8 +287,8 @@ var searchData=
286
287
  ['ptronlysvfg',['PTRONLYSVFG',['../classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d',1,'SVF::VFG']]],
287
288
  ['ptronlysvfg_5fopt',['PTRONLYSVFG_OPT',['../classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd',1,'SVF::VFG']]],
288
289
  ['ptrsinuncalledfunctions',['ptrsInUncalledFunctions',['../classSVF_1_1SVFModule.html#a816a7065cd2cf664626ee023f9dfbd1d',1,'SVF::SVFModule']]],
289
- ['ptrtobvptsmap',['PtrToBVPtsMap',['../classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b',1,'SVF::CondPTAImpl::PtrToBVPtsMap()'],['../classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e',1,'SVF::CondPTAImpl::ptrToBVPtsMap()']]],
290
- ['ptrtocptsmap',['ptrToCPtsMap',['../classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a',1,'SVF::CondPTAImpl::ptrToCPtsMap()'],['../classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09',1,'SVF::CondPTAImpl::PtrToCPtsMap()']]],
290
+ ['ptrtobvptsmap',['ptrToBVPtsMap',['../classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e',1,'SVF::CondPTAImpl::ptrToBVPtsMap()'],['../classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b',1,'SVF::CondPTAImpl::PtrToBVPtsMap()']]],
291
+ ['ptrtocptsmap',['PtrToCPtsMap',['../classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09',1,'SVF::CondPTAImpl::PtrToCPtsMap()'],['../classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a',1,'SVF::CondPTAImpl::ptrToCPtsMap()']]],
291
292
  ['ptrtonsmap',['PtrToNSMap',['../classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d',1,'SVF::CondPTAImpl']]],
292
293
  ['ptsallprint',['PTSAllPrint',['../classSVF_1_1Options.html#a113ee30422ef08b6790eed9a83277b9c',1,'SVF::Options']]],
293
294
  ['ptsmap',['ptsMap',['../classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942',1,'SVF::MutablePTData::ptsMap()'],['../classSVF_1_1PersistentPTData.html#a483c690c6cf19e258bdf7bb13e77976e',1,'SVF::PersistentPTData::ptsMap()'],['../classSVF_1_1MutablePTData.html#ad74cc6c81c4a95f6ba4e89352bccee3e',1,'SVF::MutablePTData::PtsMap()'],['../classSVF_1_1MutableDiffPTData.html#a5d64ef2d4b9ab65cc7a9e33bb6fe47cf',1,'SVF::MutableDiffPTData::PtsMap()'],['../classSVF_1_1MutableDFPTData.html#ae7456fccd4c95227cdd7163176703205',1,'SVF::MutableDFPTData::PtsMap()'],['../classSVF_1_1FlowSensitive.html#a7bb300f30f4f8cee208229ae10faa291',1,'SVF::FlowSensitive::PtsMap()'],['../classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e',1,'SVF::FlowSensitiveStat::PtsMap()']]],
@@ -67,6 +67,8 @@ var searchData=
67
67
  ['removeallindirectsvfgedges',['removeAllIndirectSVFGEdges',['../classSVF_1_1VersionedFlowSensitive.html#a275095f60640d862034ad173af3371c3',1,'SVF::VersionedFlowSensitive']]],
68
68
  ['removeback',['removeBack',['../classSVF_1_1FILOWorkList.html#a10c20d2c670af8de5dcbe6f433ca83ee',1,'SVF::FILOWorkList']]],
69
69
  ['removecandidates',['removeCandidates',['../classSVF_1_1WPAMinimumSolver.html#aa6d8de95ddf703fdac33ef1216ce4aff',1,'SVF::WPAMinimumSolver']]],
70
+ ['removecflinedge',['removeCFLInEdge',['../classSVF_1_1CFLNode.html#a60dfc3e421558eecee5065e8ae5f984a',1,'SVF::CFLNode']]],
71
+ ['removecfloutedge',['removeCFLOutEdge',['../classSVF_1_1CFLNode.html#a821078d812986c488932610063d7509f',1,'SVF::CFLNode']]],
70
72
  ['removeconstraintnode',['removeConstraintNode',['../classSVF_1_1ConstraintGraph.html#a9e21bc9b86080b4059f0907e9a7b33f3',1,'SVF::ConstraintGraph']]],
71
73
  ['removecxtstmttospan',['removeCxtStmtToSpan',['../classSVF_1_1LockAnalysis.html#a0b21446e6d5dfc1b5d0ebd75895225dd',1,'SVF::LockAnalysis']]],
72
74
  ['removedirectedge',['removeDirectEdge',['../classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244',1,'SVF::ConstraintGraph']]],
@@ -131,7 +133,7 @@ var searchData=
131
133
  ['resulttype',['ResultType',['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html#a052f7cd3a81e368060f132bf0268fa68',1,'SVF::SVFUtil::cast_retty_impl&lt; To, std::unique_ptr&lt; From &gt; &gt;']]],
132
134
  ['resumeinst',['ResumeInst',['../namespaceSVF.html#a8c685f6bff3a67bf7fe3557dbfa84caa',1,'SVF']]],
133
135
  ['resver',['resVer',['../classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813',1,'SVF::MSSADEF']]],
134
- ['ret',['Ret',['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af',1,'SVF::SVFStmt::Ret()'],['../classSVF_1_1CallICFGNode.html#a6c27c0d796b3d4becdebeba93f4fc785',1,'SVF::CallICFGNode::ret()']]],
136
+ ['ret',['ret',['../classSVF_1_1CallICFGNode.html#a6c27c0d796b3d4becdebeba93f4fc785',1,'SVF::CallICFGNode::ret()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af',1,'SVF::SVFStmt::Ret()']]],
135
137
  ['ret_5ftype',['ret_type',['../structSVF_1_1SVFUtil_1_1cast__retty__impl.html#a5f8f6d651931eba7e0fa14c26a691a04',1,'SVF::SVFUtil::cast_retty_impl::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html#ad0bc349135b60cc51fd040b615a979f7',1,'SVF::SVFUtil::cast_retty_impl&lt; To, const From &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html#a86c02dc15b65d0c052ea4447b3fb6333',1,'SVF::SVFUtil::cast_retty_impl&lt; To, From * &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html#a98a60de95a331a34dcbad6da9961a9b7',1,'SVF::SVFUtil::cast_retty_impl&lt; To, const From * &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html#add8668ca96bbf0808c146cc81c62267c',1,'SVF::SVFUtil::cast_retty_impl&lt; To, const From *const &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html#a3bf80190e39c339d4e3ec703789ae845',1,'SVF::SVFUtil::cast_retty_impl&lt; To, std::unique_ptr&lt; From &gt; &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__wrap.html#af3d80ab43e47626f32c91a6c4454e82e',1,'SVF::SVFUtil::cast_retty_wrap::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html#ad989c130f2b6cd5a0f1ba0c7abd62b9a',1,'SVF::SVFUtil::cast_retty_wrap&lt; To, FromTy, FromTy &gt;::ret_type()'],['../structSVF_1_1SVFUtil_1_1cast__retty.html#aea91708cabb8176b031f1c1fdb89a15b',1,'SVF::SVFUtil::cast_retty::ret_type()']]],
136
138
  ['retargetdstofedge',['reTargetDstOfEdge',['../classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722',1,'SVF::ConstraintGraph']]],
137
139
  ['retargetedgesofainfout',['retargetEdgesOfAInFOut',['../classSVF_1_1SVFGOPT.html#abefe3efa0232106f1843351ff6dd1063',1,'SVF::SVFGOPT']]],