svf-tools 1.0.551 → 1.0.554

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 (357) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +8 -8
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +2 -2
  11. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +18 -18
  13. package/SVF-doxygen/html/html/CHGBuilder_8h.html +1 -0
  14. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +11 -10
  15. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  16. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  17. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +17 -17
  19. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +4 -4
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
  28. package/SVF-doxygen/html/html/DCHG_8cpp.html +2 -2
  29. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +38 -35
  30. package/SVF-doxygen/html/html/DCHG_8h_source.html +9 -10
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +11 -14
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +12 -13
  33. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +5 -5
  36. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +7 -7
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
  41. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
  42. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +9 -9
  50. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +5 -5
  53. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  55. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  57. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +12 -12
  59. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +20 -18
  60. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
  61. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +17 -17
  62. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
  66. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
  68. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  70. package/SVF-doxygen/html/html/MHP_8cpp_source.html +11 -11
  71. package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
  72. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  73. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  74. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  75. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -12
  76. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +4 -4
  77. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +4 -4
  78. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  79. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
  80. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  83. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
  85. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  86. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/PCG_8cpp_source.html +6 -6
  88. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +6 -6
  90. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  92. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
  94. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +11 -11
  95. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  97. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +2 -0
  99. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +110 -109
  100. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
  101. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  104. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  105. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +61 -61
  107. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +47 -47
  108. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  109. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  110. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  111. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +9 -9
  112. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +49 -52
  113. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  114. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  115. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  116. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +10 -10
  118. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  120. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  121. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +34 -34
  123. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  124. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +5 -5
  125. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
  126. package/SVF-doxygen/html/html/TCT_8cpp_source.html +12 -12
  127. package/SVF-doxygen/html/html/TCT_8h_source.html +8 -8
  128. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  129. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  130. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  131. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  132. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  134. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +79 -80
  135. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  136. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +29 -29
  139. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +27 -27
  140. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +9 -12
  141. package/SVF-doxygen/html/html/WPAPass_8h_source.html +10 -11
  142. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -7
  149. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +2 -2
  159. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +8 -8
  160. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +50 -50
  161. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  162. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  169. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
  175. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph-members.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +114 -111
  184. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +5 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +42 -79
  186. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  189. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
  192. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +8 -8
  194. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation-members.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +12 -12
  200. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  206. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +13 -13
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  221. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  229. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +20 -19
  231. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +95 -54
  232. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +4 -4
  236. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
  237. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  238. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +19 -19
  239. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
  240. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +4 -4
  243. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
  244. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +15 -15
  245. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
  246. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +13 -13
  248. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +11 -11
  253. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +4 -4
  255. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +4 -4
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  260. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
  261. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +16 -16
  263. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +3 -3
  264. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
  267. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +61 -61
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +123 -120
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
  281. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  282. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +14 -14
  284. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  287. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +40 -40
  291. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +8 -8
  292. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +19 -19
  293. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  294. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
  296. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +4 -4
  297. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  300. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  305. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +85 -83
  310. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +8 -8
  311. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +4 -5
  312. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +28 -66
  313. package/SVF-doxygen/html/html/functions_b.html +1 -1
  314. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  315. package/SVF-doxygen/html/html/functions_func_g.html +8 -8
  316. package/SVF-doxygen/html/html/functions_func_r.html +3 -3
  317. package/SVF-doxygen/html/html/functions_g.html +9 -9
  318. package/SVF-doxygen/html/html/functions_r.html +2 -4
  319. package/SVF-doxygen/html/html/namespaceSVF.html +141 -141
  320. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +49 -49
  321. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +168 -171
  322. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +28 -28
  323. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  324. package/SVF-doxygen/html/html/search/all_13.js +1 -1
  325. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  326. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  327. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  328. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  329. package/SVF-doxygen/html/html/search/functions_6.js +3 -3
  330. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  331. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  332. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  333. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  334. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +3 -3
  335. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  336. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  337. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  338. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  339. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  340. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  341. package/include/DDA/DDAPass.h +0 -3
  342. package/include/SVF-FE/BasicTypes.h +1 -0
  343. package/include/SVF-FE/CHGBuilder.h +1 -0
  344. package/include/SVF-FE/DCHG.h +1 -1
  345. package/include/SVF-FE/LLVMModule.h +17 -0
  346. package/include/Util/BasicTypes.h +0 -1
  347. package/include/Util/ExtAPI.h +2 -2
  348. package/include/Util/ExtAPI.json +3 -3
  349. package/include/Util/SVFUtil.h +1 -13
  350. package/include/WPA/WPAPass.h +0 -3
  351. package/lib/DDA/DDAPass.cpp +0 -7
  352. package/lib/SVF-FE/DCHG.cpp +4 -7
  353. package/lib/SVF-FE/SVFIRBuilder.cpp +63 -23
  354. package/lib/Util/ExtAPI.cpp +1 -1
  355. package/lib/WPA/VersionedFlowSensitive.cpp +41 -15
  356. package/lib/WPA/WPAPass.cpp +0 -10
  357. package/package.json +1 -1
@@ -246,7 +246,7 @@ Functions</h2></td></tr>
246
246
  <p>Return true if this is an argument of a program entry function (e.g. main) </p>
247
247
 
248
248
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00132">132</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
249
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00411">SVFUtil.h:411</a></div></div>
249
+ <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00399">SVFUtil.h:399</a></div></div>
250
250
  </div><!-- fragment -->
251
251
  </div>
252
252
  </div>
@@ -271,10 +271,10 @@ Functions</h2></td></tr>
271
271
 
272
272
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00128">128</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
273
273
  <div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFFunction(fun);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svffun))</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> fun-&gt;getReturnType()-&gt;isVoidTy();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;const BasicBlock*&gt; bbVec;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const BasicBlock*&gt;</a> visited;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; bbVec.push_back(&amp;fun-&gt;getEntryBlock());</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">while</span>(!bbVec.empty())</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbVec.back();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; bbVec.pop_back();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (BasicBlock::const_iterator it = bb-&gt;begin(), eit = bb-&gt;end();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ReturnInst&gt;(*it))</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> sit = succ_begin(bb), esit = succ_end(bb);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; sit != esit; ++sit)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succbb = (*sit);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(visited.find(succbb)==visited.end())</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; visited.insert(succbb);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; bbVec.push_back(succbb);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// if(isProgEntryFunction(fun)==false) {</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">// writeWrnMsg(fun-&gt;getName().str() + &quot; does not have return&quot;);</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">// }</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
274
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
275
- <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
274
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00125">BasicTypes.h:125</a></div></div>
275
+ <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00117">BasicTypes.h:117</a></div></div>
276
276
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
277
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00358">SVFUtil.h:358</a></div></div>
277
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00346">SVFUtil.h:346</a></div></div>
278
278
  </div><!-- fragment -->
279
279
  </div>
280
280
  </div>
@@ -299,7 +299,7 @@ Functions</h2></td></tr>
299
299
 
300
300
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00406">406</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
301
301
  <div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = 0;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> it = pred_begin(BB), et = pred_end(BB); it != et; ++it)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; num++;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> num;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</div><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>
302
- <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
302
+ <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00162">BasicTypes.h:162</a></div></div>
303
303
  </div><!-- fragment -->
304
304
  </div>
305
305
  </div>
@@ -334,7 +334,7 @@ Functions</h2></td></tr>
334
334
 
335
335
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00383">383</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
336
336
  <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> it = pred_begin(succbb), et = pred_end(succbb); it != et; ++it, ++pos)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span>(*it==bb)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Didn&#39;t find predecessor edge?&quot;</span>);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> pos;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><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>
337
- <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
337
+ <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00162">BasicTypes.h:162</a></div></div>
338
338
  </div><!-- fragment -->
339
339
  </div>
340
340
  </div>
@@ -421,7 +421,7 @@ Functions</h2></td></tr>
421
421
  </div><div class="memdoc">
422
422
 
423
423
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00282">282</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
424
- <div class="fragment"><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>) dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> dl;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a03db82b8a7914367024723dba4d6ca3c"><div class="ttname"><a href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">SVF::DataLayout</a></div><div class="ttdeci">llvm::DataLayout DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00054">BasicTypes.h:54</a></div></div>
424
+ <div class="fragment"><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>) dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> dl;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a03db82b8a7914367024723dba4d6ca3c"><div class="ttname"><a href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">SVF::DataLayout</a></div><div class="ttdeci">llvm::DataLayout DataLayout</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00055">BasicTypes.h:55</a></div></div>
425
425
  </div><!-- fragment -->
426
426
  </div>
427
427
  </div>
@@ -452,7 +452,7 @@ Functions</h2></td></tr>
452
452
 
453
453
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00167">167</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
454
454
  <div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = svfFun-&gt;getLLVMFun();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; assert(!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svfFun) &amp;&amp; <span class="stringliteral">&quot;The function cannot be an external call&quot;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> &amp;fun-&gt;back();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</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#l00070">BasicTypes.h:70</a></div></div>
455
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00358">SVFUtil.h:358</a></div></div>
455
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00346">SVFUtil.h:346</a></div></div>
456
456
  </div><!-- fragment -->
457
457
  </div>
458
458
  </div>
@@ -487,11 +487,11 @@ Functions</h2></td></tr>
487
487
 
488
488
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00094">94</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
489
489
  <div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; assert(!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svfFun) &amp;&amp; <span class="stringliteral">&quot;The calling function cannot be an external function.&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">//initial DominatorTree</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> dt;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; dt.recalculate(*svfFun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const BasicBlock*&gt;</a> visited;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::vector&lt;const BasicBlock*&gt; bbVec;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; bbVec.push_back(&amp;svfFun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;getEntryBlock());</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">while</span>(!bbVec.empty())</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbVec.back();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; bbVec.pop_back();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; reachableBBs.push_back(bb);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">DomTreeNode</a> *dtNode = dt.getNode(const_cast&lt;BasicBlock*&gt;(bb)))</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span> (DomTreeNode::iterator DI = dtNode-&gt;begin(), DE = dtNode-&gt;end();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; DI != DE; ++DI)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succbb = (*DI)-&gt;getBlock();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(visited.find(succbb)==visited.end())</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; visited.insert(succbb);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; bbVec.push_back(succbb);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
490
- <div class="ttc" id="namespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
490
+ <div class="ttc" id="namespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
491
491
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
492
- <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
493
- <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00152">BasicTypes.h:152</a></div></div>
494
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00358">SVFUtil.h:358</a></div></div>
492
+ <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
493
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00151">BasicTypes.h:151</a></div></div>
494
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00346">SVFUtil.h:346</a></div></div>
495
495
  </div><!-- fragment -->
496
496
  </div>
497
497
  </div>
@@ -526,7 +526,7 @@ Functions</h2></td></tr>
526
526
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00259">259</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
527
527
  <div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span> (!curInst-&gt;isTerminator())</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = curInst-&gt;getNextNode();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVFUtil::isIntrinsicInst</a>(nextInst))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a752d53b6b65d892d0e579aafe70083b4">getNextInsts</a>(nextInst, instList);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; instList.push_back(nextInst);</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="keywordflow">else</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB = curInst-&gt;getParent();</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// Visit all successors of BB in the CFG</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> it = succ_begin(BB), ie = succ_end(BB); it != ie; ++it)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* nextInst = &amp;((*it)-&gt;front());</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVFUtil::isIntrinsicInst</a>(nextInst))</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a752d53b6b65d892d0e579aafe70083b4">getNextInsts</a>(nextInst, instList);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; instList.push_back(nextInst);</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;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab7f58caf27c30a1d414e06f60ca84d80"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00181">SVFUtil.h:181</a></div></div>
528
528
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
529
- <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
529
+ <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00117">BasicTypes.h:117</a></div></div>
530
530
  <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#l00073">BasicTypes.h:73</a></div></div>
531
531
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a752d53b6b65d892d0e579aafe70083b4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a752d53b6b65d892d0e579aafe70083b4">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector&lt; const Instruction *&gt; &amp;instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00259">LLVMUtil.cpp:259</a></div></div>
532
532
  </div><!-- fragment -->
@@ -565,7 +565,7 @@ Functions</h2></td></tr>
565
565
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab7f58caf27c30a1d414e06f60ca84d80"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00181">SVFUtil.h:181</a></div></div>
566
566
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
567
567
  <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#l00073">BasicTypes.h:73</a></div></div>
568
- <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
568
+ <div class="ttc" id="namespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00162">BasicTypes.h:162</a></div></div>
569
569
  </div><!-- fragment -->
570
570
  </div>
571
571
  </div>
@@ -624,11 +624,11 @@ Functions</h2></td></tr>
624
624
  <p>Get the reference type of heap/static object from an allocation site. </p>
625
625
 
626
626
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00085">85</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
627
- <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(cs))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(cs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *arg = cs.getArgument(argPos);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast&lt;PointerType&gt;(arg-&gt;getType()))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Case 2: heap/static object held by return value.</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; assert((<a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(cs))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; &amp;&amp; <span class="stringliteral">&quot;Must be heap alloc via ret, or static allocation site&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(cs.getType());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; assert(refType &amp;&amp; <span class="stringliteral">&quot;Allocated object must be held by a pointer-typed value.&quot;</span>);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> refType;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><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#l00089">BasicTypes.h:89</a></div></div>
628
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00496">SVFUtil.h:496</a></div></div>
629
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00507">SVFUtil.h:507</a></div></div>
630
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00565">SVFUtil.h:565</a></div></div>
631
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00379">SVFUtil.h:379</a></div></div>
627
+ <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(cs))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(cs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *arg = cs.getArgument(argPos);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast&lt;PointerType&gt;(arg-&gt;getType()))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Case 2: heap/static object held by return value.</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; assert((<a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(cs))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; &amp;&amp; <span class="stringliteral">&quot;Must be heap alloc via ret, or static allocation site&quot;</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(cs.getType());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; assert(refType &amp;&amp; <span class="stringliteral">&quot;Allocated object must be held by a pointer-typed value.&quot;</span>);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> refType;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><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#l00088">BasicTypes.h:88</a></div></div>
628
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00484">SVFUtil.h:484</a></div></div>
629
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00495">SVFUtil.h:495</a></div></div>
630
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00553">SVFUtil.h:553</a></div></div>
631
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00367">SVFUtil.h:367</a></div></div>
632
632
  <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>
633
633
  <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#l00072">BasicTypes.h:72</a></div></div>
634
634
  <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>
@@ -684,16 +684,16 @@ Functions</h2></td></tr>
684
684
  <p>Return the type of the object from a heap allocation </p>
685
685
 
686
686
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00335">335</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
687
- <div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(inst-&gt;getType());</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(inst))</div><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>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">getUniqueUseViaCastInst</a>(inst))</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">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast&lt;PointerType&gt;(v-&gt;getType()))</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; type = newTy;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(inst))</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; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(cs));</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *arg = cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_pos);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; type = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(arg-&gt;getType());</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; assert( <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not a heap allocation instruction?&quot;</span>);</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; assert(type &amp;&amp; <span class="stringliteral">&quot;not a pointer type?&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(type);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</div><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#l00089">BasicTypes.h:89</a></div></div>
687
+ <div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(inst-&gt;getType());</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(inst))</div><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>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">getUniqueUseViaCastInst</a>(inst))</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">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast&lt;PointerType&gt;(v-&gt;getType()))</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; type = newTy;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(inst))</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; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(cs));</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *arg = cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_pos);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; type = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(arg-&gt;getType());</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; assert( <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not a heap allocation instruction?&quot;</span>);</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; assert(type &amp;&amp; <span class="stringliteral">&quot;not a pointer type?&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(type);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;}</div><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#l00088">BasicTypes.h:88</a></div></div>
688
688
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdoc">Return the bitcast instruction which is val&amp;#39;s only use site, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00316">LLVMUtil.cpp:316</a></div></div>
689
- <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#l00264">BasicTypes.h:264</a></div></div>
689
+ <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#l00263">BasicTypes.h:263</a></div></div>
690
690
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
691
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00496">SVFUtil.h:496</a></div></div>
692
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00507">SVFUtil.h:507</a></div></div>
693
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
694
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00379">SVFUtil.h:379</a></div></div>
691
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00484">SVFUtil.h:484</a></div></div>
692
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00495">SVFUtil.h:495</a></div></div>
693
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00269">SVFUtil.h:269</a></div></div>
694
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00367">SVFUtil.h:367</a></div></div>
695
695
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
696
- <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#l00251">BasicTypes.h:251</a></div></div>
696
+ <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#l00250">BasicTypes.h:250</a></div></div>
697
697
  <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>
698
698
  <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#l00072">BasicTypes.h:72</a></div></div>
699
699
  <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>
@@ -752,7 +752,7 @@ Functions</h2></td></tr>
752
752
  <p>if this struct type does not have any element, i.e., opaque </p>
753
753
 
754
754
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00474">474</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
755
- <div class="fragment"><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">StructLayout</a> *stTySL = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getMainLLVMModule())-&gt;getStructLayout( const_cast&lt;StructType *&gt;(sty) );</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>(sty-&gt;isOpaque())</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> stTySL-&gt;getElementOffset(field_idx);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a52c8654c221bb53a59f70ea3cb1e5c45"><div class="ttname"><a href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">SVF::StructLayout</a></div><div class="ttdeci">llvm::StructLayout StructLayout</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00051">BasicTypes.h:51</a></div></div>
755
+ <div class="fragment"><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">StructLayout</a> *stTySL = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getMainLLVMModule())-&gt;getStructLayout( const_cast&lt;StructType *&gt;(sty) );</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>(sty-&gt;isOpaque())</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> stTySL-&gt;getElementOffset(field_idx);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a52c8654c221bb53a59f70ea3cb1e5c45"><div class="ttname"><a href="namespaceSVF.html#a52c8654c221bb53a59f70ea3cb1e5c45">SVF::StructLayout</a></div><div class="ttdeci">llvm::StructLayout StructLayout</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00052">BasicTypes.h:52</a></div></div>
756
756
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a151fd7fb2b2ebe72af7c417defbb4f4d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">SVF::LLVMUtil::getDataLayout</a></div><div class="ttdeci">static DataLayout * getDataLayout(Module *mod)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00282">LLVMUtil.h:282</a></div></div>
757
757
  </div><!-- fragment -->
758
758
  </div>
@@ -778,12 +778,12 @@ Functions</h2></td></tr>
778
778
 
779
779
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00316">316</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
780
780
  <div class="fragment"><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> * <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(val-&gt;getType());</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; assert(type &amp;&amp; <span class="stringliteral">&quot;this value should be a pointer type!&quot;</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a> *IT = SVFUtil::dyn_cast&lt;IntegerType&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(type)))</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">if</span> (IT-&gt;getBitWidth() == 8 &amp;&amp; val-&gt;getNumUses()==1)</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &amp;*val-&gt;use_begin();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>&gt;(u-&gt;getUser());</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00032">BasicTypes.h:32</a></div></div>
781
- <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#l00089">BasicTypes.h:89</a></div></div>
781
+ <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#l00088">BasicTypes.h:88</a></div></div>
782
782
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
783
- <div class="ttc" id="namespaceSVF_html_afc50da46a6ea7c2cf61683bbec4d7c8d"><div class="ttname"><a href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">SVF::BitCastInst</a></div><div class="ttdeci">llvm::BitCastInst BitCastInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
783
+ <div class="ttc" id="namespaceSVF_html_afc50da46a6ea7c2cf61683bbec4d7c8d"><div class="ttname"><a href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">SVF::BitCastInst</a></div><div class="ttdeci">llvm::BitCastInst BitCastInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
784
784
  <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>
785
785
  <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>
786
- <div class="ttc" id="namespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00121">BasicTypes.h:121</a></div></div>
786
+ <div class="ttc" id="namespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00120">BasicTypes.h:120</a></div></div>
787
787
  </div><!-- fragment -->
788
788
  </div>
789
789
  </div>
@@ -843,7 +843,7 @@ Functions</h2></td></tr>
843
843
  </div><div class="memdoc">
844
844
 
845
845
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00261">261</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
846
- <div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>((constExpr-&gt;getOpcode() &gt;= Instruction::BinaryOpsBegin) &amp;&amp; (constExpr-&gt;getOpcode() &lt;= Instruction::BinaryOpsEnd))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
846
+ <div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>((constExpr-&gt;getOpcode() &gt;= Instruction::BinaryOpsBegin) &amp;&amp; (constExpr-&gt;getOpcode() &lt;= Instruction::BinaryOpsEnd))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
847
847
  </div><!-- fragment -->
848
848
  </div>
849
849
  </div>
@@ -902,7 +902,7 @@ Functions</h2></td></tr>
902
902
  </div><div class="memdoc">
903
903
 
904
904
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00217">217</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
905
- <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::BitCast)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
905
+ <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::BitCast)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
906
906
  </div><!-- fragment -->
907
907
  </div>
908
908
  </div>
@@ -931,7 +931,7 @@ Functions</h2></td></tr>
931
931
  </div><div class="memdoc">
932
932
 
933
933
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00251">251</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
934
- <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::ICmp || constExpr-&gt;getOpcode() == Instruction::FCmp)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> constExpr;</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">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
934
+ <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::ICmp || constExpr-&gt;getOpcode() == Instruction::FCmp)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> constExpr;</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">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
935
935
  </div><!-- fragment -->
936
936
  </div>
937
937
  </div>
@@ -958,7 +958,7 @@ Functions</h2></td></tr>
958
958
  <div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* v = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">cppUtil::isValVtbl</a>(v))</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!v-&gt;hasInitializer())</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(v-&gt;isExternalLinkage(v-&gt;getLinkage()))</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1StInfo.html">StInfo</a> *stInfo = SymbolTableInfo::SymbolInfo()-&gt;getStructInfo(v-&gt;getInitializer()-&gt;getType());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">const</span> std::vector&lt;const Type*&gt; &amp;fields = stInfo-&gt;<a class="code" href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9">getFlattenFieldTypes</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">for</span> (std::vector&lt;const Type*&gt;::const_iterator it = fields.begin(), eit = fields.end(); it != eit; ++it)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *elemTy = *it;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; assert(!SVFUtil::isa&lt;FunctionType&gt;(elemTy) &amp;&amp; <span class="stringliteral">&quot;Initializer of a global is a function?&quot;</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;PointerType&gt;(elemTy))</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> v-&gt;isConstant();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(val);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</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#l00065">BasicTypes.h:65</a></div></div>
959
959
  <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
960
960
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_aeef0f5c6486379043a7d47b0635f2667"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">SVF::cppUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00124">CPPUtil.cpp:124</a></div></div>
961
- <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#l00451">SVFUtil.h:451</a></div></div>
961
+ <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>
962
962
  <div class="ttc" id="classSVF_1_1StInfo_html"><div class="ttname"><a href="classSVF_1_1StInfo.html">SVF::StInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00472">SymbolTableInfo.h:472</a></div></div>
963
963
  <div class="ttc" id="classSVF_1_1StInfo_html_a7fe5593e487a04e8f0eb28ca7bc31fe9"><div class="ttname"><a href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9">SVF::StInfo::getFlattenFieldTypes</a></div><div class="ttdeci">std::vector&lt; const Type * &gt; &amp; getFlattenFieldTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00526">SymbolTableInfo.h:526</a></div></div>
964
964
  </div><!-- fragment -->
@@ -991,7 +991,7 @@ Functions</h2></td></tr>
991
991
  <p>Return corresponding constant expression, otherwise return nullptr. </p>
992
992
 
993
993
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00187">187</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
994
- <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
994
+ <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
995
995
  </div><!-- fragment -->
996
996
  </div>
997
997
  </div>
@@ -1020,7 +1020,7 @@ Functions</h2></td></tr>
1020
1020
  </div><div class="memdoc">
1021
1021
 
1022
1022
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00197">197</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1023
- <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::IntToPtr)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1023
+ <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::IntToPtr)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1024
1024
  </div><!-- fragment -->
1025
1025
  </div>
1026
1026
  </div>
@@ -1075,7 +1075,7 @@ Functions</h2></td></tr>
1075
1075
  <p>Return true if the function does not have a caller (either it is a main function or a dead function) </p>
1076
1076
 
1077
1077
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00146">146</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1078
- <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(fun) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(fun);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00411">SVFUtil.h:411</a></div></div>
1078
+ <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(fun) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(fun);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00399">SVFUtil.h:399</a></div></div>
1079
1079
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller? </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00169">LLVMUtil.cpp:169</a></div></div>
1080
1080
  </div><!-- fragment -->
1081
1081
  </div>
@@ -1107,7 +1107,7 @@ Functions</h2></td></tr>
1107
1107
  <p>Check whether this value is a black hole. </p>
1108
1108
 
1109
1109
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00054">54</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1110
- <div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* v = SVFUtil::dyn_cast&lt;Constant&gt;(val))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> v-&gt;isNullValue() &amp;&amp; v-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
1110
+ <div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* v = SVFUtil::dyn_cast&lt;Constant&gt;(val))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> v-&gt;isNullValue() &amp;&amp; v-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1111
1111
  </div><!-- fragment -->
1112
1112
  </div>
1113
1113
  </div>
@@ -1131,8 +1131,8 @@ Functions</h2></td></tr>
1131
1131
  <p>A value represents an object if it is 1) function, 2) global 3) stack 4) heap </p>
1132
1132
 
1133
1133
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00042">42</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1134
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">bool</span> createobj = <span class="keyword">false</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(SVFUtil::cast&lt;Instruction&gt;(ref)) )</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(SVFUtil::cast&lt;Instruction&gt;(ref)))</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(ref))</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Function&gt;(ref) || SVFUtil::isa&lt;AllocaInst&gt;(ref) )</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> createobj;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00507">SVFUtil.h:507</a></div></div>
1135
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00565">SVFUtil.h:565</a></div></div>
1134
+ <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">bool</span> createobj = <span class="keyword">false</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(SVFUtil::cast&lt;Instruction&gt;(ref)) )</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(SVFUtil::cast&lt;Instruction&gt;(ref)))</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(ref))</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Function&gt;(ref) || SVFUtil::isa&lt;AllocaInst&gt;(ref) )</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> createobj;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00495">SVFUtil.h:495</a></div></div>
1135
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00553">SVFUtil.h:553</a></div></div>
1136
1136
  </div><!-- fragment -->
1137
1137
  </div>
1138
1138
  </div>
@@ -1161,7 +1161,7 @@ Functions</h2></td></tr>
1161
1161
  </div><div class="memdoc">
1162
1162
 
1163
1163
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00207">207</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1164
- <div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::PtrToInt)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1164
+ <div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::PtrToInt)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1165
1165
  </div><!-- fragment -->
1166
1166
  </div>
1167
1167
  </div>
@@ -1186,7 +1186,7 @@ Functions</h2></td></tr>
1186
1186
 
1187
1187
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00202">202</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1188
1188
  <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(value))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(inst-&gt;getParent()-&gt;getParent()))</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast&lt;Argument&gt;(value))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(arg-&gt;getParent()))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div><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#l00073">BasicTypes.h:73</a></div></div>
1189
- <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#l00093">BasicTypes.h:93</a></div></div>
1189
+ <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#l00092">BasicTypes.h:92</a></div></div>
1190
1190
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller? </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00169">LLVMUtil.cpp:169</a></div></div>
1191
1191
  </div><!-- fragment -->
1192
1192
  </div>
@@ -1246,7 +1246,7 @@ Functions</h2></td></tr>
1246
1246
  </div><div class="memdoc">
1247
1247
 
1248
1248
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00227">227</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1249
- <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::Select)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1249
+ <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(constExpr-&gt;getOpcode() == Instruction::Select)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1250
1250
  </div><!-- fragment -->
1251
1251
  </div>
1252
1252
  </div>
@@ -1275,7 +1275,7 @@ Functions</h2></td></tr>
1275
1275
  </div><div class="memdoc">
1276
1276
 
1277
1277
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00237">237</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1278
- <div class="fragment"><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;{</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</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>(constExpr-&gt;getOpcode() == Instruction::Trunc ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPTrunc ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; constExpr-&gt;getOpcode() == Instruction::ZExt ||</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; constExpr-&gt;getOpcode() == Instruction::SExt ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPExt)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1278
+ <div class="fragment"><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;{</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</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>(constExpr-&gt;getOpcode() == Instruction::Trunc ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPTrunc ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; constExpr-&gt;getOpcode() == Instruction::ZExt ||</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; constExpr-&gt;getOpcode() == Instruction::SExt ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPExt)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> constExpr;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1279
1279
  </div><!-- fragment -->
1280
1280
  </div>
1281
1281
  </div>
@@ -1304,7 +1304,7 @@ Functions</h2></td></tr>
1304
1304
  </div><div class="memdoc">
1305
1305
 
1306
1306
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00271">271</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1307
- <div class="fragment"><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>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>((constExpr-&gt;getOpcode() &gt;= Instruction::UnaryOpsBegin) &amp;&amp; (constExpr-&gt;getOpcode() &lt;= Instruction::UnaryOpsEnd))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> constExpr;</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">nullptr</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1307
+ <div class="fragment"><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>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>((constExpr-&gt;getOpcode() &gt;= Instruction::UnaryOpsBegin) &amp;&amp; (constExpr-&gt;getOpcode() &lt;= Instruction::UnaryOpsEnd))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> constExpr;</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">nullptr</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1308
1308
  </div><!-- fragment -->
1309
1309
  </div>
1310
1310
  </div>
@@ -1330,7 +1330,7 @@ Functions</h2></td></tr>
1330
1330
 
1331
1331
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00169">169</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1332
1332
  <div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(fun-&gt;hasAddressTaken())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVFUtil::isProgEntryFunction</a>(fun))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">for</span> (Value::const_user_iterator i = fun-&gt;user_begin(), e = fun-&gt;user_end(); i != e; ++i)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(*i))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()-&gt;hasDeclaration(fun))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html#acfd1ffb4696136de493843786c799e6b">SVFModule::FunctionSetType</a> &amp;decls = LLVMModuleSet::getLLVMModuleSet()-&gt;getDeclaration(fun);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span> (SVFModule::FunctionSetType::const_iterator it = decls.begin(),</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; eit = decls.end(); it != eit; ++it)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *decl = (*it)-&gt;getLLVMFun();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(decl-&gt;hasAddressTaken())</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (Value::const_user_iterator i = decl-&gt;user_begin(), e = decl-&gt;user_end(); i != e; ++i)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(*i))</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
1333
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00411">SVFUtil.h:411</a></div></div>
1333
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00399">SVFUtil.h:399</a></div></div>
1334
1334
  <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#l00070">BasicTypes.h:70</a></div></div>
1335
1335
  <div class="ttc" id="classSVF_1_1SVFModule_html_acfd1ffb4696136de493843786c799e6b"><div class="ttname"><a href="classSVF_1_1SVFModule.html#acfd1ffb4696136de493843786c799e6b">SVF::SVFModule::FunctionSetType</a></div><div class="ttdeci">std::vector&lt; const SVFFunction * &gt; FunctionSetType</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00044">SVFModule.h:44</a></div></div>
1336
1336
  </div><!-- fragment -->
@@ -1409,8 +1409,8 @@ Functions</h2></td></tr>
1409
1409
  <p>Strip all casts </p>
1410
1410
 
1411
1411
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00235">235</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1412
- <div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">CastInst</a> *ci = SVFUtil::dyn_cast&lt;CastInst&gt;(val))</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; val = ci-&gt;getOperand(0);</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="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *ce = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(ce-&gt;isCast())</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; val = ce-&gt;getOperand(0);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> val;</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">else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
1413
- <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1412
+ <div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">while</span> (<span class="keyword">true</span>)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">CastInst</a> *ci = SVFUtil::dyn_cast&lt;CastInst&gt;(val))</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; val = ci-&gt;getOperand(0);</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="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *ce = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(ce-&gt;isCast())</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; val = ce-&gt;getOperand(0);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> val;</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">else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a962e9a9044a46fc4bd2367384f6e0827"><div class="ttname"><a href="namespaceSVF.html#a962e9a9044a46fc4bd2367384f6e0827">SVF::CastInst</a></div><div class="ttdeci">llvm::CastInst CastInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
1413
+ <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1414
1414
  </div><!-- fragment -->
1415
1415
  </div>
1416
1416
  </div>
@@ -1436,7 +1436,7 @@ Functions</h2></td></tr>
1436
1436
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00220">220</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1437
1437
  <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalValue&gt;(val) || <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(val))</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *CE = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (Instruction::isCast(CE-&gt;getOpcode()))</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(CE-&gt;getOperand(0));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a07bd47ccfd02c5a2a6db26b537b2184f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">SVF::LLVMUtil::stripConstantCasts</a></div><div class="ttdeci">const Value * stripConstantCasts(const Value *val)</div><div class="ttdoc">Strip off the constant casts. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00220">LLVMUtil.cpp:220</a></div></div>
1438
1438
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_adfa4a4e6d13004d14137d9168bd32463"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil::isInt2PtrConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isInt2PtrConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00197">LLVMUtil.h:197</a></div></div>
1439
- <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00060">BasicTypes.h:60</a></div></div>
1439
+ <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
1440
1440
  </div><!-- fragment -->
1441
1441
  </div>
1442
1442
  </div>