svf-tools 1.0.579 → 1.0.581

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 (313) hide show
  1. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -1
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +3 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -6
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -3
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/BasicTypes_8cpp.html +81 -0
  7. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +91 -0
  8. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +10 -10
  9. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +12 -11
  14. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +49 -48
  15. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +76 -76
  16. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +10 -10
  18. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +11 -10
  20. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -4
  21. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  22. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  23. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +18 -16
  25. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +6 -3
  28. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -2
  31. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
  33. package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
  34. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +5 -2
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +4 -2
  39. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -2
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -1
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -3
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +5 -2
  47. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +1 -2
  48. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -5
  49. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
  53. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  56. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +6 -6
  57. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +7 -7
  60. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  64. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +7 -6
  66. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  68. package/SVF-doxygen/html/html/MHP_8cpp_source.html +4 -4
  69. package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  71. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  73. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  74. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
  75. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  76. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -3
  77. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  78. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  79. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -5
  80. package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -2
  81. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -8
  82. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -2
  83. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +25 -25
  86. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +9 -9
  89. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +3 -0
  91. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +3 -2
  92. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  93. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  95. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -1
  96. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -3
  97. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +18 -17
  99. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +6 -6
  100. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  102. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +2 -1
  103. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  104. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +4 -4
  105. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  107. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +5 -5
  109. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  110. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -2
  111. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +2 -3
  112. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  113. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -1
  114. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +11 -11
  115. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  116. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -3
  117. package/SVF-doxygen/html/html/TCT_8cpp_source.html +6 -6
  118. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  120. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  121. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  122. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  124. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  125. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +83 -84
  126. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  127. package/SVF-doxygen/html/html/VFG_8cpp_source.html +6 -4
  128. package/SVF-doxygen/html/html/VFG_8h_source.html +6 -3
  129. package/SVF-doxygen/html/html/VFG_8txt.html +5 -5
  130. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -2
  131. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -1
  132. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  133. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +3 -3
  136. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +8 -8
  137. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +4 -4
  138. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  139. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +5 -5
  140. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +11 -11
  145. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +11 -11
  146. package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +24 -24
  147. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +24 -23
  148. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +49 -47
  149. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +10 -10
  150. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +17 -16
  152. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  153. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  156. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +17 -8
  158. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +9 -8
  159. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +5 -5
  162. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -6
  164. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +5 -5
  168. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +5 -4
  170. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +12 -8
  171. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +4 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  175. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +25 -24
  177. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +75 -44
  178. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +1 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +3 -3
  182. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +7 -7
  184. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +17 -17
  188. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -6
  189. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +13 -13
  190. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +15 -12
  191. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -3
  192. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +5 -5
  193. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +11 -11
  194. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +34 -22
  196. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +8 -8
  198. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  200. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  201. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  204. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +5 -5
  205. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +126 -160
  206. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -8
  207. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  209. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  210. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +38 -37
  211. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +7 -7
  215. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -2
  216. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +2 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +14 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +7 -7
  222. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
  223. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +24 -18
  231. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -5
  232. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  233. package/SVF-doxygen/html/html/files.html +14 -13
  234. package/SVF-doxygen/html/html/functions_d.html +1 -1
  235. package/SVF-doxygen/html/html/functions_func_d.html +1 -1
  236. package/SVF-doxygen/html/html/functions_func_g.html +2 -2
  237. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  238. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  239. package/SVF-doxygen/html/html/functions_g.html +2 -2
  240. package/SVF-doxygen/html/html/functions_i.html +16 -13
  241. package/SVF-doxygen/html/html/functions_l.html +3 -3
  242. package/SVF-doxygen/html/html/functions_o.html +6 -6
  243. package/SVF-doxygen/html/html/functions_p.html +7 -3
  244. package/SVF-doxygen/html/html/functions_r.html +1 -1
  245. package/SVF-doxygen/html/html/functions_s.html +8 -8
  246. package/SVF-doxygen/html/html/functions_v.html +3 -3
  247. package/SVF-doxygen/html/html/globals_a.html +5 -5
  248. package/SVF-doxygen/html/html/globals_c.html +2 -4
  249. package/SVF-doxygen/html/html/globals_e.html +1 -1
  250. package/SVF-doxygen/html/html/globals_f.html +1 -1
  251. package/SVF-doxygen/html/html/globals_func.html +1 -1
  252. package/SVF-doxygen/html/html/globals_g.html +12 -12
  253. package/SVF-doxygen/html/html/globals_l.html +4 -4
  254. package/SVF-doxygen/html/html/globals_s.html +4 -4
  255. package/SVF-doxygen/html/html/globals_v.html +4 -4
  256. package/SVF-doxygen/html/html/globals_vars.html +33 -35
  257. package/SVF-doxygen/html/html/namespaceSVF.html +26 -23
  258. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +11 -11
  259. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  260. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +25 -23
  261. package/SVF-doxygen/html/html/search/all_1.js +2 -2
  262. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  263. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  264. package/SVF-doxygen/html/html/search/all_12.js +7 -7
  265. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  266. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  267. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  268. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  269. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  270. package/SVF-doxygen/html/html/search/all_4.js +1 -1
  271. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  272. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  273. package/SVF-doxygen/html/html/search/all_7.js +7 -7
  274. package/SVF-doxygen/html/html/search/all_9.js +5 -4
  275. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  276. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  277. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  278. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  279. package/SVF-doxygen/html/html/search/files_1.js +1 -0
  280. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  281. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  282. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  283. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  284. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  285. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  286. package/SVF-doxygen/html/html/search/variables_12.js +2 -2
  287. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  288. package/SVF-doxygen/html/html/search/variables_15.js +2 -2
  289. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  290. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  291. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  292. package/SVF-doxygen/html/html/search/variables_7.js +5 -5
  293. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  294. package/SVF-doxygen/html/html/search/variables_c.js +3 -3
  295. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  296. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +3 -3
  297. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +1 -2
  298. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +1 -5
  299. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -5
  300. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  302. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  303. package/include/CFL/CFLAlias.h +2 -3
  304. package/include/CFL/CFLGrammar.h +2 -0
  305. package/include/CFL/CFLGrammar.txt +28 -28
  306. package/include/CFL/PEGGrammar.txt +7 -7
  307. package/include/CFL/VFG.txt +3 -3
  308. package/include/SVF-FE/BasicTypes.h +3 -0
  309. package/include/Util/BasicTypes.h +8 -101
  310. package/lib/CFL/CFLGrammar.cpp +33 -1
  311. package/lib/CFL/GrammarBuilder.cpp +1 -1
  312. package/lib/Util/BasicTypes.cpp +110 -0
  313. package/package.json +1 -1
@@ -1639,10 +1639,10 @@ template&lt;class X , class Y &gt; </div>
1639
1639
  <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>
1640
1640
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
1641
1641
  <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>
1642
- <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
1643
- <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
1642
+ <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00087">BasicTypes.h:87</a></div></div>
1643
+ <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
1644
1644
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9e85d445e8b7b205134acd3874bba388"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVF::SVFUtil::isConstantData</a></div><div class="ttdeci">bool isConstantData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00439">SVFUtil.h:439</a></div></div>
1645
- <div class="ttc" id="namespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
1645
+ <div class="ttc" id="namespaceSVF_html_a3011dbac9102f044ad5f36a4ad3d4a71"><div class="ttname"><a href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">SVF::NamedMDNode</a></div><div class="ttdeci">llvm::NamedMDNode NamedMDNode</div><div class="ttdoc">LLVM metadata. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
1646
1646
  <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>
1647
1647
  </div><!-- fragment -->
1648
1648
  </div>
@@ -1666,7 +1666,7 @@ template&lt;class X , class Y &gt; </div>
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
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>
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#l00113">BasicTypes.h:113</a></div></div>
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
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
1671
  <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
1672
  </div><!-- fragment -->
@@ -177,7 +177,7 @@ Functions</h2></td></tr>
177
177
 
178
178
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00411">411</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
179
179
  <div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordtype">string</span> className = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *ptrType = SVFUtil::dyn_cast&lt;PointerType&gt;(ty))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *elemType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrType);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;StructType&gt;(elemType) &amp;&amp;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; !((SVFUtil::cast&lt;StructType&gt;(elemType))-&gt;isLiteral()))</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">string</span> elemTypeName = elemType-&gt;getStructName().str();</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a7622b99b57e87ceef06c0d154fae281b">clsName</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a7622b99b57e87ceef06c0d154fae281b">clsName</a>) == 0)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; className = elemTypeName.substr(<a class="code" href="CPPUtil_8cpp.html#a7622b99b57e87ceef06c0d154fae281b">clsName</a>.size());</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (elemTypeName.compare(0, <a class="code" href="CPPUtil_8cpp.html#a4f0d10054cce04a0f4dec52a337cdf3c">structName</a>.size(), <a class="code" href="CPPUtil_8cpp.html#a4f0d10054cce04a0f4dec52a337cdf3c">structName</a>) == 0)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; className = elemTypeName.substr(<a class="code" href="CPPUtil_8cpp.html#a4f0d10054cce04a0f4dec52a337cdf3c">structName</a>.size());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> className;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
180
- <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
180
+ <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
181
181
  <div class="ttc" id="CPPUtil_8cpp_html_a4f0d10054cce04a0f4dec52a337cdf3c"><div class="ttname"><a href="CPPUtil_8cpp.html#a4f0d10054cce04a0f4dec52a337cdf3c">structName</a></div><div class="ttdeci">const string structName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00055">CPPUtil.cpp:55</a></div></div>
182
182
  <div class="ttc" id="CPPUtil_8cpp_html_a7622b99b57e87ceef06c0d154fae281b"><div class="ttname"><a href="CPPUtil_8cpp.html#a7622b99b57e87ceef06c0d154fae281b">clsName</a></div><div class="ttdeci">const string clsName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00054">CPPUtil.cpp:54</a></div></div>
183
183
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00073">LLVMUtil.h:73</a></div></div>
@@ -225,11 +225,11 @@ Functions</h2></td></tr>
225
225
 
226
226
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00520">520</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
227
227
  <div class="fragment"><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;{</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordtype">string</span> thisPtrClassName;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>();</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst-&gt;getMetadata(<span class="stringliteral">&quot;VCallPtrType&quot;</span>))</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a> &amp;mdstr = SVFUtil::cast&lt;MDString&gt;((N-&gt;getOperand(0)));</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; thisPtrClassName = mdstr.getString().str();</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span> (thisPtrClassName.size() == 0)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisPtr = <a class="code" href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">getVCallThisPtr</a>(cs);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; thisPtrClassName = <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">getClassNameFromType</a>(thisPtr-&gt;getType());</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">size_t</span> found = thisPtrClassName.find_last_not_of(<span class="stringliteral">&quot;0123456789&quot;</span>);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">if</span> (found != string::npos)</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">if</span> (found != thisPtrClassName.size() - 1 &amp;&amp; thisPtrClassName[found] == <span class="charliteral">&#39;.&#39;</span>)</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">return</span> thisPtrClassName.substr(0, found);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> thisPtrClassName;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00052">BasicTypes.h:52</a></div></div>
228
- <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00395">BasicTypes.h:395</a></div></div>
228
+ <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00302">BasicTypes.h:302</a></div></div>
229
229
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a891719bac36ebb6c001f073dfa5a9e7b"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">SVF::cppUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00411">CPPUtil.cpp:411</a></div></div>
230
230
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
231
231
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a7c9507812041b5de8dbbca5b602fefbd"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">SVF::cppUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00315">CPPUtil.cpp:315</a></div></div>
232
- <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
232
+ <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
233
233
  <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>
234
234
  </div><!-- fragment -->
235
235
  </div>
@@ -253,7 +253,7 @@ Functions</h2></td></tr>
253
253
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00365">365</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
254
254
  <div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; assert((<a class="code" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a>(fun) || <a class="code" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a>(fun)) &amp;&amp; <span class="stringliteral">&quot;not a constructor?&quot;</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; assert(fun-&gt;arg_size() &gt;=1 &amp;&amp; <span class="stringliteral">&quot;argument size &gt;= 1?&quot;</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr = &amp;*(fun-&gt;arg_begin());</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> thisPtr;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad6f9578cdce518141772a11617160da8"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">SVF::cppUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00454">CPPUtil.cpp:454</a></div></div>
255
255
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00486">CPPUtil.cpp:486</a></div></div>
256
- <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
256
+ <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00087">BasicTypes.h:87</a></div></div>
257
257
  </div><!-- fragment -->
258
258
  </div>
259
259
  </div>
@@ -275,9 +275,9 @@ Functions</h2></td></tr>
275
275
 
276
276
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00547">547</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
277
277
  <div class="fragment"><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordtype">string</span> funName;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>();</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst-&gt;getMetadata(<span class="stringliteral">&quot;VCallFunName&quot;</span>))</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a> &amp;mdstr = SVFUtil::cast&lt;MDString&gt;((N-&gt;getOperand(0)));</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; funName = mdstr.getString().str();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> funName;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00052">BasicTypes.h:52</a></div></div>
278
- <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00395">BasicTypes.h:395</a></div></div>
278
+ <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00302">BasicTypes.h:302</a></div></div>
279
279
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
280
- <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
280
+ <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
281
281
  </div><!-- fragment -->
282
282
  </div>
283
283
  </div>
@@ -299,7 +299,7 @@ Functions</h2></td></tr>
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
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>
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#l00387">BasicTypes.h:387</a></div></div>
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
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
304
  </div><!-- fragment -->
305
305
  </div>
@@ -321,11 +321,11 @@ Functions</h2></td></tr>
321
321
  </div><div class="memdoc">
322
322
 
323
323
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00391">391</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
324
- <div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst-&gt;getPointerOperand();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; User::const_op_iterator oi = vfuncptrgepinst-&gt;idx_begin();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *idx = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(&amp;(*oi));</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> idx_value;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;vcall gep idx not constantint\n&quot;</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; idx_value = 0;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; idx_value = idx-&gt;getSExtValue();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> idx_value;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00427">BasicTypes.h:427</a></div></div>
325
- <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
324
+ <div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst-&gt;getPointerOperand();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; User::const_op_iterator oi = vfuncptrgepinst-&gt;idx_begin();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *idx = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(&amp;(*oi));</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> idx_value;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;vcall gep idx not constantint\n&quot;</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; idx_value = 0;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; idx_value = idx-&gt;getSExtValue();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> idx_value;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00334">BasicTypes.h:334</a></div></div>
325
+ <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
326
326
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
327
327
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
328
- <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#l00100">BasicTypes.h:100</a></div></div>
328
+ <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>
329
329
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
330
330
  <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>
331
331
  <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
@@ -349,8 +349,8 @@ Functions</h2></td></tr>
349
349
  </div><div class="memdoc">
350
350
 
351
351
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00315">315</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
352
- <div class="fragment"><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">paramHasAttr</a>(0, llvm::Attribute::StructRet))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(1);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(0);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00399">BasicTypes.h:399</a></div></div>
353
- <div class="ttc" id="classSVF_1_1CallSite_html_a15a98a5e0fe91f0e239a052acd029cc2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">SVF::CallSite::paramHasAttr</a></div><div class="ttdeci">bool paramHasAttr(unsigned ArgNo, llvm::Attribute::AttrKind Kind) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00439">BasicTypes.h:439</a></div></div>
352
+ <div class="fragment"><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">paramHasAttr</a>(0, llvm::Attribute::StructRet))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(1);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(0);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00306">BasicTypes.h:306</a></div></div>
353
+ <div class="ttc" id="classSVF_1_1CallSite_html_a15a98a5e0fe91f0e239a052acd029cc2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">SVF::CallSite::paramHasAttr</a></div><div class="ttdeci">bool paramHasAttr(unsigned ArgNo, llvm::Attribute::AttrKind Kind) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00346">BasicTypes.h:346</a></div></div>
354
354
  </div><!-- fragment -->
355
355
  </div>
356
356
  </div>
@@ -371,9 +371,9 @@ Functions</h2></td></tr>
371
371
  </div><div class="memdoc">
372
372
 
373
373
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00380">380</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
374
- <div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;{</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; assert(loadInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *gepInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; assert(gepInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = gepInst-&gt;getPointerOperand();</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> vtbl;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00427">BasicTypes.h:427</a></div></div>
374
+ <div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;{</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; assert(loadInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *gepInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; assert(gepInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = gepInst-&gt;getPointerOperand();</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> vtbl;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00334">BasicTypes.h:334</a></div></div>
375
375
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
376
- <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#l00100">BasicTypes.h:100</a></div></div>
376
+ <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>
377
377
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
378
378
  <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>
379
379
  </div><!-- fragment -->
@@ -475,9 +475,9 @@ Functions</h2></td></tr>
475
475
  </div><div class="memdoc">
476
476
 
477
477
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00229">229</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
478
- <div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *loadSrc = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *valTy = loadSrc-&gt;getType();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *elemTy = valTy;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; 3; ++i)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *ptrTy = SVFUtil::dyn_cast&lt;PointerType&gt;(elemTy))</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; elemTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrTy);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a> *functy = SVFUtil::dyn_cast&lt;FunctionType&gt;(elemTy))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *paramty = functy-&gt;getParamType(0);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">string</span> className = <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">cppUtil::getClassNameFromType</a>(paramty);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (className.size() &gt; 0)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a6ec0236303089a01fd9da36a8bb84e0a"><div class="ttname"><a href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">SVF::FunctionType</a></div><div class="ttdeci">llvm::FunctionType FunctionType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
478
+ <div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *loadSrc = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *valTy = loadSrc-&gt;getType();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *elemTy = valTy;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; 3; ++i)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *ptrTy = SVFUtil::dyn_cast&lt;PointerType&gt;(elemTy))</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; elemTy = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(ptrTy);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a> *functy = SVFUtil::dyn_cast&lt;FunctionType&gt;(elemTy))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *paramty = functy-&gt;getParamType(0);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">string</span> className = <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">cppUtil::getClassNameFromType</a>(paramty);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (className.size() &gt; 0)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a6ec0236303089a01fd9da36a8bb84e0a"><div class="ttname"><a href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">SVF::FunctionType</a></div><div class="ttdeci">llvm::FunctionType FunctionType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
479
479
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
480
- <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
480
+ <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
481
481
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a891719bac36ebb6c001f073dfa5a9e7b"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">SVF::cppUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00411">CPPUtil.cpp:411</a></div></div>
482
482
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
483
483
  <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>
@@ -514,8 +514,10 @@ Functions</h2></td></tr>
514
514
  <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
515
 
516
516
  <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> *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#l00099">BasicTypes.h:99</a></div></div>
518
- <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#l00100">BasicTypes.h:100</a></div></div>
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>
520
+ <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>
519
521
  <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>
520
522
  </div><!-- fragment -->
521
523
  </div>
@@ -558,11 +560,11 @@ Functions</h2></td></tr>
558
560
  </div><div class="memdoc">
559
561
 
560
562
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00260">260</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
561
- <div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// the callsite must be an indirect one with at least one argument (this ptr)</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">getCalledFunction</a>() != <span class="keyword">nullptr</span> || cs.<a class="code" href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">arg_empty</a>())</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfunc = cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = SVFUtil::dyn_cast&lt;LoadInst&gt;(vfunc))</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst-&gt;getPointerOperand();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; SVFUtil::dyn_cast&lt;GetElementPtrInst&gt;(vfuncptr))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (vfuncptrgepinst-&gt;getNumIndices() != 1)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = vfuncptrgepinst-&gt;getPointerOperand();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadInst&gt;(vtbl))</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00427">BasicTypes.h:427</a></div></div>
562
- <div class="ttc" id="classSVF_1_1CallSite_html_ad084f7734007db7b14444b20bb980dd3"><div class="ttname"><a href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">SVF::CallSite::arg_empty</a></div><div class="ttdeci">bool arg_empty() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00411">BasicTypes.h:411</a></div></div>
563
+ <div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// the callsite must be an indirect one with at least one argument (this ptr)</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">getCalledFunction</a>() != <span class="keyword">nullptr</span> || cs.<a class="code" href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">arg_empty</a>())</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfunc = cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = SVFUtil::dyn_cast&lt;LoadInst&gt;(vfunc))</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst-&gt;getPointerOperand();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; SVFUtil::dyn_cast&lt;GetElementPtrInst&gt;(vfuncptr))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (vfuncptrgepinst-&gt;getNumIndices() != 1)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = vfuncptrgepinst-&gt;getPointerOperand();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadInst&gt;(vtbl))</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00334">BasicTypes.h:334</a></div></div>
564
+ <div class="ttc" id="classSVF_1_1CallSite_html_ad084f7734007db7b14444b20bb980dd3"><div class="ttname"><a href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">SVF::CallSite::arg_empty</a></div><div class="ttdeci">bool arg_empty() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00318">BasicTypes.h:318</a></div></div>
563
565
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
564
- <div class="ttc" id="classSVF_1_1CallSite_html_ae9b0172e29199f2a938d7cf9e42241cf"><div class="ttname"><a href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">SVF::CallSite::getCalledFunction</a></div><div class="ttdeci">Function * getCalledFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00423">BasicTypes.h:423</a></div></div>
565
- <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#l00100">BasicTypes.h:100</a></div></div>
566
+ <div class="ttc" id="classSVF_1_1CallSite_html_ae9b0172e29199f2a938d7cf9e42241cf"><div class="ttname"><a href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">SVF::CallSite::getCalledFunction</a></div><div class="ttdeci">Function * getCalledFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00330">BasicTypes.h:330</a></div></div>
567
+ <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>
566
568
  <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>
567
569
  </div><!-- fragment -->
568
570
  </div>
@@ -587,7 +589,7 @@ Functions</h2></td></tr>
587
589
  <div class="fragment"><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;{</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> classNameOfThisPtr = <a class="code" href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">getClassNameOfThisPtr</a>(cs);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *func = cs.<a class="code" href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">getCaller</a>();</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a>(func) || <a class="code" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a>(func))</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(func-&gt;getName().str());</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span> (classNameOfThisPtr.compare(dname.className) == 0)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad6f9578cdce518141772a11617160da8"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">SVF::cppUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00454">CPPUtil.cpp:454</a></div></div>
588
590
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00486">CPPUtil.cpp:486</a></div></div>
589
591
  <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>
590
- <div class="ttc" id="classSVF_1_1CallSite_html_afd501405e1d3cc673fced6dc56f3b759"><div class="ttname"><a href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">SVF::CallSite::getCaller</a></div><div class="ttdeci">Function * getCaller() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00431">BasicTypes.h:431</a></div></div>
592
+ <div class="ttc" id="classSVF_1_1CallSite_html_afd501405e1d3cc673fced6dc56f3b759"><div class="ttname"><a href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">SVF::CallSite::getCaller</a></div><div class="ttdeci">Function * getCaller() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00338">BasicTypes.h:338</a></div></div>
591
593
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3bed7bc0a0ae580841ca049f91690ff7"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">SVF::cppUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00520">CPPUtil.cpp:520</a></div></div>
592
594
  <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>
593
595
  <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>
@@ -221,8 +221,8 @@ var searchData=
221
221
  ['addptrelementtype',['addptrElementType',['../classSVF_1_1SVFModule.html#a4ca35d1a1c7fe2152bb11681624f27ac',1,'SVF::SVFModule']]],
222
222
  ['addptrinuncalledfunction',['addPtrInUncalledFunction',['../classSVF_1_1SVFModule.html#ad09d9748b6e3fd1be3a751f7aeef68a8',1,'SVF::SVFModule']]],
223
223
  ['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#a017fa6c558fa1eff0a13180c8340aba8',1,'Addr():&#160;CFLGrammar.txt']]],
225
- ['addrbar',['Addrbar',['../CFLGrammar_8txt.html#a11ba05967682e1a34391b8c3309de1e6',1,'Addrbar():&#160;CFLGrammar.txt'],['../PEGGrammar_8txt.html#a43cf87c9fa668dbee3d5e626a136c8fe',1,'Addrbar():&#160;PEGGrammar.txt']]],
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']]],
226
226
  ['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
227
  ['addrcgedgeset',['AddrCGEdgeSet',['../classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc',1,'SVF::ConstraintGraph']]],
228
228
  ['addrefsideeffectofcallsite',['addRefSideEffectOfCallSite',['../classSVF_1_1MRGenerator.html#a83f5087e84eb7a18976cbd3a446605ee',1,'SVF::MRGenerator']]],
@@ -113,7 +113,7 @@ var searchData=
113
113
  ['persptdataty',['PersPTDataTy',['../classSVF_1_1BVDataPTAImpl.html#ae3ba6392560e5c0978335151c3373fd1',1,'SVF::BVDataPTAImpl']]],
114
114
  ['persversioned',['PersVersioned',['../classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848a15e53fc2443dac125c703ccd7eef1a03',1,'SVF::PTData']]],
115
115
  ['persversionedptdataty',['PersVersionedPTDataTy',['../classSVF_1_1BVDataPTAImpl.html#ae028ae29bdc799f35777b82a39faf5e8',1,'SVF::BVDataPTAImpl']]],
116
- ['phi',['PHI',['../classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1',1,'SVF::MemSSA::PHI()'],['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9',1,'SVF::SVFStmt::Phi()']]],
116
+ ['phi',['Phi',['../classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9',1,'SVF::SVFStmt::Phi()'],['../classSVF_1_1MemSSA.html#a8e948ea7778158107657fdd8195530e1',1,'SVF::MemSSA::PHI()']]],
117
117
  ['phinode',['PHINode',['../namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674',1,'SVF']]],
118
118
  ['phinodemap',['phiNodeMap',['../classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9',1,'SVF::SVFIR::phiNodeMap()'],['../classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b',1,'SVF::SVFIR::PHINodeMap()']]],
119
119
  ['phiset',['PHISet',['../classSVF_1_1SVFG.html#aef7ee9d802934d51b3761663bdaf0c05',1,'SVF::SVFG::PHISet()'],['../classSVF_1_1MemSSA.html#a8a5d3597f3dba9744e170cc8c32bf25f',1,'SVF::MemSSA::PHISet()']]],
@@ -145,7 +145,7 @@ var searchData=
145
145
  ['populationcounter',['PopulationCounter',['../structSVF_1_1PopulationCounter.html',1,'SVF']]],
146
146
  ['populationcounter_3c_20t_2c_208_20_3e',['PopulationCounter&lt; T, 8 &gt;',['../structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html',1,'SVF']]],
147
147
  ['position',['position',['../structerror.html#a24de70a4d517ab351d80c18582cadb66',1,'error::position()'],['../cJSON_8cpp.html#a1c3580b00311725af8eb560f18555e0a',1,'position():&#160;cJSON.cpp']]],
148
- ['postdominate',['postDominate',['../classSVF_1_1SaberCondAllocator.html#a9f359b8e3d83bc2a92d4bc568ef62f76',1,'SVF::SaberCondAllocator::postDominate()'],['../classSVF_1_1SVFFunction.html#a8e1db3a8be765e23cbb4ec66b9e88e2d',1,'SVF::SVFFunction::postDominate()']]],
148
+ ['postdominate',['postDominate',['../classSVF_1_1SaberCondAllocator.html#a9f359b8e3d83bc2a92d4bc568ef62f76',1,'SVF::SaberCondAllocator::postDominate()'],['../classSVF_1_1SVFFunction.html#aecb578309d89d324f5cd7fc8e1925eeb',1,'SVF::SVFFunction::postDominate()']]],
149
149
  ['postdominatortree',['PostDominatorTree',['../namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef',1,'SVF']]],
150
150
  ['postprocessnode',['postProcessNode',['../classSVF_1_1AndersenWaveDiff.html#aa0659a2787c1f9b1b6ec62900313475e',1,'SVF::AndersenWaveDiff']]],
151
151
  ['prebuffer',['prebuffer',['../cJSON_8h.html#a039dc262c2ae63f95cfe193245f8ee7e',1,'prebuffer():&#160;cJSON.h'],['../cJSON_8cpp.html#a039dc262c2ae63f95cfe193245f8ee7e',1,'prebuffer():&#160;cJSON.cpp']]],
@@ -189,9 +189,9 @@ var searchData=
189
189
  ['printinterlev',['PrintInterLev',['../classSVF_1_1Options.html#aa3e6c78eb346a52bbaaac2610573604a',1,'SVF::Options']]],
190
190
  ['printlocks',['printLocks',['../classSVF_1_1LockAnalysis.html#ac1b42b0a53feae04f848e5b0828ff01a',1,'SVF::LockAnalysis']]],
191
191
  ['printlockspan',['PrintLockSpan',['../classSVF_1_1Options.html#ab8a9641b660197b4421fbd6141858c58',1,'SVF::Options']]],
192
- ['printpathcond',['printPathCond',['../classSVF_1_1SaberCondAllocator.html#a389fd522c1de5b4feed34f29b9709d03',1,'SVF::SaberCondAllocator::printPathCond()'],['../classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496',1,'SVF::Options::PrintPathCond()']]],
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_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f',1,'SVF::DDAPass::printQueryPTS()'],['../classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10',1,'SVF::Options::PrintQueryPts()']]],
194
+ ['printquerypts',['PrintQueryPts',['../classSVF_1_1Options.html#aabfcfcd67df527cdf587aff5ecc26a10',1,'SVF::Options::PrintQueryPts()'],['../classSVF_1_1DDAPass.html#afc700bd3abb5d9199621741b9bd04f0f',1,'SVF::DDAPass::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()']]],
@@ -270,7 +270,7 @@ var searchData=
270
270
  ['ptastat_2ecpp',['PTAStat.cpp',['../PTAStat_8cpp.html',1,'']]],
271
271
  ['ptastat_2eh',['PTAStat.h',['../PTAStat_8h.html',1,'']]],
272
272
  ['ptaty',['PTATY',['../classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85',1,'SVF::PointerAnalysis::PTATY()'],['../classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4',1,'SVF::PointerAnalysis::ptaTy()']]],
273
- ['ptavector',['ptaVector',['../classSVF_1_1WPAPass.html#a72a66ae158793f5d1bcb37b655db4446',1,'SVF::WPAPass::ptaVector()'],['../classSVF_1_1DDAPass.html#acc7ad5d3266cb3e24fba0b4db186348a',1,'SVF::DDAPass::PTAVector()'],['../classSVF_1_1WPAPass.html#ad4e3d480ebcc6bbbb7bcc8dc3df8663e',1,'SVF::WPAPass::PTAVector()']]],
273
+ ['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
274
  ['ptbackingtype',['PTBackingType',['../classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a',1,'SVF::BVDataPTAImpl']]],
275
275
  ['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()']]],
276
276
  ['ptd',['ptD',['../classSVF_1_1BVDataPTAImpl.html#aee07488c4d53551826439d79b28e2e6d',1,'SVF::BVDataPTAImpl::ptD()'],['../classSVF_1_1CondPTAImpl.html#af960c10e49932ea5e9dcdd299ff300ce',1,'SVF::CondPTAImpl::ptD()']]],
@@ -290,7 +290,7 @@ var searchData=
290
290
  ['ptrtocptsmap',['ptrToCPtsMap',['../classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a',1,'SVF::CondPTAImpl::ptrToCPtsMap()'],['../classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09',1,'SVF::CondPTAImpl::PtrToCPtsMap()']]],
291
291
  ['ptrtonsmap',['PtrToNSMap',['../classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d',1,'SVF::CondPTAImpl']]],
292
292
  ['ptsallprint',['PTSAllPrint',['../classSVF_1_1Options.html#a113ee30422ef08b6790eed9a83277b9c',1,'SVF::Options']]],
293
- ['ptsmap',['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()'],['../classSVF_1_1MutablePTData.html#a5ee6e307acd4edbf4f7c2b063032d942',1,'SVF::MutablePTData::ptsMap()'],['../classSVF_1_1PersistentPTData.html#a483c690c6cf19e258bdf7bb13e77976e',1,'SVF::PersistentPTData::ptsMap()']]],
293
+ ['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()']]],
294
294
  ['ptsmapconstiter',['PtsMapConstIter',['../classSVF_1_1MutablePTData.html#ae9c96f369fbe955a841badcf3fcfcc03',1,'SVF::MutablePTData::PtsMapConstIter()'],['../classSVF_1_1MutableDFPTData.html#a3f234abc0def4815a03de164fa258f24',1,'SVF::MutableDFPTData::PtsMapConstIter()']]],
295
295
  ['ptsmapiter',['PtsMapIter',['../classSVF_1_1MutablePTData.html#ad08dbfa28cd0d622322091d6600748ed',1,'SVF::MutablePTData']]],
296
296
  ['ptsprint',['PTSPrint',['../classSVF_1_1Options.html#ace0fa364337374ce75a58a9e2f229e24',1,'SVF::Options']]],
@@ -147,7 +147,7 @@ var searchData=
147
147
  ['retmssamu',['RetMSSAMU',['../classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9ba255f3e3fc50f3a8d9a8bd5800b1b4594',1,'SVF::MSSAMU']]],
148
148
  ['retmu',['RetMU',['../classSVF_1_1RetMU.html',1,'SVF::RetMU&lt; Cond &gt;'],['../classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056',1,'SVF::SVFG::RETMU()'],['../classSVF_1_1MemSSA.html#a953a56a65ee36fd1c78b29179cd3f33a',1,'SVF::MemSSA::RETMU()'],['../classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee',1,'SVF::RetMU::RetMU()']]],
149
149
  ['retnode',['RetNode',['../classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98',1,'SVF::SVFVar']]],
150
- ['retpe',['RetPE',['../classSVF_1_1RetPE.html',1,'SVF::RetPE'],['../classSVF_1_1RetPE.html#ab4da5e54fec989eab5640acc8c4fe215',1,'SVF::RetPE::RetPE()'],['../classSVF_1_1RetPE.html#a0af89e939e91a980a083f931b209aea0',1,'SVF::RetPE::RetPE(const RetPE &amp;)'],['../classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8',1,'SVF::RetPE::RetPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e, GEdgeKind k=SVFStmt::Ret)'],['../classSVF_1_1RetCFGEdge.html#ad4bbb9881dff7b715c7a70b92baf376c',1,'SVF::RetCFGEdge::retPE()']]],
150
+ ['retpe',['RetPE',['../classSVF_1_1RetPE.html',1,'SVF::RetPE'],['../classSVF_1_1RetCFGEdge.html#ad4bbb9881dff7b715c7a70b92baf376c',1,'SVF::RetCFGEdge::retPE()'],['../classSVF_1_1RetPE.html#ab4da5e54fec989eab5640acc8c4fe215',1,'SVF::RetPE::RetPE()'],['../classSVF_1_1RetPE.html#a0af89e939e91a980a083f931b209aea0',1,'SVF::RetPE::RetPE(const RetPE &amp;)'],['../classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8',1,'SVF::RetPE::RetPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e, GEdgeKind k=SVFStmt::Ret)']]],
151
151
  ['retpebegin',['retPEBegin',['../classSVF_1_1FormalRetVFGNode.html#ad81c6e6579293352ecb59345538b2132',1,'SVF::FormalRetVFGNode']]],
152
152
  ['retpeend',['retPEEnd',['../classSVF_1_1FormalRetVFGNode.html#adae36045df1057e551d92aa7bfb236f9',1,'SVF::FormalRetVFGNode']]],
153
153
  ['retpes',['retPEs',['../classSVF_1_1FormalRetVFGNode.html#a5fa2fc654385d0fab018053e89565157',1,'SVF::FormalRetVFGNode']]],