svf-tools 1.0.830 → 1.0.832

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +220 -228
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +9 -9
  3. package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +8 -8
  8. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
  10. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
  12. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  13. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
  17. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
  22. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +7 -7
  23. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +369 -402
  24. package/SVF-doxygen/html/LLVMUtil_8h.html +3 -10
  25. package/SVF-doxygen/html/LLVMUtil_8h_source.html +350 -392
  26. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  31. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +358 -362
  32. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
  33. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +5 -5
  34. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +13 -13
  36. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
  39. package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
  40. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
  42. package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -39
  43. package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
  44. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  46. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
  48. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +199 -199
  51. package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +4 -4
  52. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +318 -322
  53. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
  54. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +200 -209
  57. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  60. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  64. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
  68. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +8 -8
  69. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
  74. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  75. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  79. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  84. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
  89. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
  90. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  93. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +7 -7
  99. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  102. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  103. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
  104. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1MemObj.html +121 -121
  106. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +28 -28
  108. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
  109. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +336 -340
  112. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
  115. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
  116. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +4 -4
  118. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +6 -6
  119. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +16 -16
  120. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
  121. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
  122. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +2 -4
  123. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
  124. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
  125. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  126. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  128. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  129. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  130. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +196 -196
  131. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +103 -107
  132. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  133. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  134. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  135. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
  136. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
  137. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  139. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  140. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  141. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +526 -669
  142. package/SVF-doxygen/html/namespacemembers_func_g.html +0 -6
  143. package/SVF-doxygen/html/namespacemembers_func_i.html +9 -9
  144. package/SVF-doxygen/html/namespacemembers_g.html +4 -10
  145. package/SVF-doxygen/html/namespacemembers_i.html +7 -7
  146. package/SVF-doxygen/html/search/all_10.js +324 -324
  147. package/SVF-doxygen/html/search/all_11.js +223 -223
  148. package/SVF-doxygen/html/search/all_12.js +553 -553
  149. package/SVF-doxygen/html/search/all_13.js +192 -192
  150. package/SVF-doxygen/html/search/all_14.js +67 -67
  151. package/SVF-doxygen/html/search/all_15.js +167 -167
  152. package/SVF-doxygen/html/search/all_16.js +63 -63
  153. package/SVF-doxygen/html/search/all_17.js +1 -1
  154. package/SVF-doxygen/html/search/all_18.js +1 -1
  155. package/SVF-doxygen/html/search/all_19.js +11 -11
  156. package/SVF-doxygen/html/search/all_1a.js +172 -172
  157. package/SVF-doxygen/html/search/all_7.js +246 -248
  158. package/SVF-doxygen/html/search/all_8.js +198 -198
  159. package/SVF-doxygen/html/search/all_9.js +607 -607
  160. package/SVF-doxygen/html/search/all_a.js +46 -46
  161. package/SVF-doxygen/html/search/all_b.js +26 -26
  162. package/SVF-doxygen/html/search/all_c.js +115 -115
  163. package/SVF-doxygen/html/search/all_d.js +198 -198
  164. package/SVF-doxygen/html/search/all_e.js +207 -207
  165. package/SVF-doxygen/html/search/all_f.js +116 -116
  166. package/SVF-doxygen/html/search/classes_0.js +26 -26
  167. package/SVF-doxygen/html/search/classes_1.js +9 -9
  168. package/SVF-doxygen/html/search/classes_10.js +73 -73
  169. package/SVF-doxygen/html/search/classes_11.js +15 -15
  170. package/SVF-doxygen/html/search/classes_12.js +2 -2
  171. package/SVF-doxygen/html/search/classes_13.js +10 -10
  172. package/SVF-doxygen/html/search/classes_14.js +14 -14
  173. package/SVF-doxygen/html/search/classes_15.js +1 -1
  174. package/SVF-doxygen/html/search/classes_2.js +80 -80
  175. package/SVF-doxygen/html/search/classes_3.js +37 -37
  176. package/SVF-doxygen/html/search/classes_4.js +9 -9
  177. package/SVF-doxygen/html/search/classes_5.js +28 -28
  178. package/SVF-doxygen/html/search/classes_6.js +104 -104
  179. package/SVF-doxygen/html/search/classes_7.js +34 -34
  180. package/SVF-doxygen/html/search/classes_8.js +56 -56
  181. package/SVF-doxygen/html/search/classes_9.js +1 -1
  182. package/SVF-doxygen/html/search/classes_a.js +12 -12
  183. package/SVF-doxygen/html/search/classes_b.js +29 -29
  184. package/SVF-doxygen/html/search/classes_c.js +6 -6
  185. package/SVF-doxygen/html/search/classes_d.js +18 -18
  186. package/SVF-doxygen/html/search/classes_e.js +36 -36
  187. package/SVF-doxygen/html/search/classes_f.js +25 -25
  188. package/SVF-doxygen/html/search/defines_0.js +3 -3
  189. package/SVF-doxygen/html/search/defines_1.js +2 -2
  190. package/SVF-doxygen/html/search/defines_2.js +30 -30
  191. package/SVF-doxygen/html/search/defines_3.js +21 -21
  192. package/SVF-doxygen/html/search/defines_4.js +2 -2
  193. package/SVF-doxygen/html/search/defines_5.js +4 -4
  194. package/SVF-doxygen/html/search/defines_6.js +2 -2
  195. package/SVF-doxygen/html/search/defines_7.js +5 -5
  196. package/SVF-doxygen/html/search/defines_8.js +11 -11
  197. package/SVF-doxygen/html/search/defines_9.js +9 -9
  198. package/SVF-doxygen/html/search/defines_a.js +2 -2
  199. package/SVF-doxygen/html/search/defines_b.js +1 -1
  200. package/SVF-doxygen/html/search/defines_c.js +3 -3
  201. package/SVF-doxygen/html/search/defines_d.js +2 -2
  202. package/SVF-doxygen/html/search/defines_e.js +7 -7
  203. package/SVF-doxygen/html/search/defines_f.js +3 -3
  204. package/SVF-doxygen/html/search/enums_0.js +3 -3
  205. package/SVF-doxygen/html/search/enums_1.js +2 -2
  206. package/SVF-doxygen/html/search/enums_10.js +1 -1
  207. package/SVF-doxygen/html/search/enums_11.js +1 -1
  208. package/SVF-doxygen/html/search/enums_2.js +8 -8
  209. package/SVF-doxygen/html/search/enums_3.js +1 -1
  210. package/SVF-doxygen/html/search/enums_4.js +3 -3
  211. package/SVF-doxygen/html/search/enums_5.js +1 -1
  212. package/SVF-doxygen/html/search/enums_6.js +2 -2
  213. package/SVF-doxygen/html/search/enums_7.js +2 -2
  214. package/SVF-doxygen/html/search/enums_8.js +4 -4
  215. package/SVF-doxygen/html/search/enums_9.js +1 -1
  216. package/SVF-doxygen/html/search/enums_a.js +1 -1
  217. package/SVF-doxygen/html/search/enums_b.js +7 -7
  218. package/SVF-doxygen/html/search/enums_c.js +1 -1
  219. package/SVF-doxygen/html/search/enums_d.js +4 -4
  220. package/SVF-doxygen/html/search/enums_e.js +2 -2
  221. package/SVF-doxygen/html/search/enums_f.js +4 -4
  222. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  223. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  224. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  225. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  226. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  227. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  228. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  229. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  230. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  231. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  232. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  233. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  234. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  235. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  236. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  237. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  238. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  239. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  240. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  241. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  242. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  243. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  244. package/SVF-doxygen/html/search/files_0.js +13 -13
  245. package/SVF-doxygen/html/search/files_1.js +7 -7
  246. package/SVF-doxygen/html/search/files_10.js +8 -8
  247. package/SVF-doxygen/html/search/files_11.js +8 -8
  248. package/SVF-doxygen/html/search/files_12.js +2 -2
  249. package/SVF-doxygen/html/search/files_2.js +55 -55
  250. package/SVF-doxygen/html/search/files_3.js +14 -14
  251. package/SVF-doxygen/html/search/files_4.js +5 -5
  252. package/SVF-doxygen/html/search/files_5.js +13 -13
  253. package/SVF-doxygen/html/search/files_6.js +9 -9
  254. package/SVF-doxygen/html/search/files_7.js +14 -14
  255. package/SVF-doxygen/html/search/files_8.js +13 -13
  256. package/SVF-doxygen/html/search/files_9.js +18 -18
  257. package/SVF-doxygen/html/search/files_a.js +3 -3
  258. package/SVF-doxygen/html/search/files_b.js +2 -2
  259. package/SVF-doxygen/html/search/files_c.js +20 -20
  260. package/SVF-doxygen/html/search/files_d.js +4 -4
  261. package/SVF-doxygen/html/search/files_e.js +62 -62
  262. package/SVF-doxygen/html/search/files_f.js +8 -8
  263. package/SVF-doxygen/html/search/functions_0.js +13 -13
  264. package/SVF-doxygen/html/search/functions_1.js +360 -360
  265. package/SVF-doxygen/html/search/functions_10.js +140 -140
  266. package/SVF-doxygen/html/search/functions_11.js +139 -139
  267. package/SVF-doxygen/html/search/functions_12.js +288 -288
  268. package/SVF-doxygen/html/search/functions_13.js +59 -59
  269. package/SVF-doxygen/html/search/functions_14.js +39 -39
  270. package/SVF-doxygen/html/search/functions_15.js +71 -71
  271. package/SVF-doxygen/html/search/functions_16.js +32 -32
  272. package/SVF-doxygen/html/search/functions_17.js +3 -3
  273. package/SVF-doxygen/html/search/functions_18.js +172 -172
  274. package/SVF-doxygen/html/search/functions_2.js +89 -89
  275. package/SVF-doxygen/html/search/functions_3.js +258 -258
  276. package/SVF-doxygen/html/search/functions_4.js +78 -78
  277. package/SVF-doxygen/html/search/functions_5.js +53 -53
  278. package/SVF-doxygen/html/search/functions_6.js +60 -60
  279. package/SVF-doxygen/html/search/functions_7.js +855 -857
  280. package/SVF-doxygen/html/search/functions_8.js +149 -149
  281. package/SVF-doxygen/html/search/functions_9.js +423 -423
  282. package/SVF-doxygen/html/search/functions_a.js +30 -30
  283. package/SVF-doxygen/html/search/functions_b.js +2 -2
  284. package/SVF-doxygen/html/search/functions_c.js +25 -25
  285. package/SVF-doxygen/html/search/functions_d.js +79 -79
  286. package/SVF-doxygen/html/search/functions_e.js +35 -35
  287. package/SVF-doxygen/html/search/functions_f.js +56 -56
  288. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  289. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  290. package/SVF-doxygen/html/search/related_0.js +2 -2
  291. package/SVF-doxygen/html/search/related_1.js +2 -2
  292. package/SVF-doxygen/html/search/related_2.js +2 -2
  293. package/SVF-doxygen/html/search/related_3.js +2 -2
  294. package/SVF-doxygen/html/search/related_4.js +2 -2
  295. package/SVF-doxygen/html/search/related_5.js +1 -1
  296. package/SVF-doxygen/html/search/related_6.js +2 -2
  297. package/SVF-doxygen/html/search/related_7.js +4 -4
  298. package/SVF-doxygen/html/search/related_8.js +2 -2
  299. package/SVF-doxygen/html/search/related_9.js +4 -4
  300. package/SVF-doxygen/html/search/related_a.js +19 -19
  301. package/SVF-doxygen/html/search/related_b.js +4 -4
  302. package/SVF-doxygen/html/search/related_c.js +2 -2
  303. package/SVF-doxygen/html/search/related_d.js +12 -12
  304. package/SVF-doxygen/html/search/related_e.js +2 -2
  305. package/SVF-doxygen/html/search/related_f.js +2 -2
  306. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  307. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  308. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  309. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  310. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  311. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  312. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  313. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  314. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  315. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  316. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  317. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  318. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  319. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  320. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  321. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  322. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  323. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  324. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  325. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  326. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  327. package/SVF-doxygen/html/search/variables_0.js +151 -151
  328. package/SVF-doxygen/html/search/variables_1.js +75 -75
  329. package/SVF-doxygen/html/search/variables_10.js +97 -97
  330. package/SVF-doxygen/html/search/variables_11.js +44 -44
  331. package/SVF-doxygen/html/search/variables_12.js +92 -92
  332. package/SVF-doxygen/html/search/variables_13.js +76 -76
  333. package/SVF-doxygen/html/search/variables_14.js +14 -14
  334. package/SVF-doxygen/html/search/variables_15.js +48 -48
  335. package/SVF-doxygen/html/search/variables_16.js +9 -9
  336. package/SVF-doxygen/html/search/variables_17.js +1 -1
  337. package/SVF-doxygen/html/search/variables_18.js +2 -2
  338. package/SVF-doxygen/html/search/variables_2.js +38 -38
  339. package/SVF-doxygen/html/search/variables_3.js +142 -142
  340. package/SVF-doxygen/html/search/variables_4.js +55 -55
  341. package/SVF-doxygen/html/search/variables_5.js +37 -37
  342. package/SVF-doxygen/html/search/variables_6.js +66 -66
  343. package/SVF-doxygen/html/search/variables_7.js +34 -34
  344. package/SVF-doxygen/html/search/variables_8.js +7 -7
  345. package/SVF-doxygen/html/search/variables_9.js +78 -78
  346. package/SVF-doxygen/html/search/variables_a.js +4 -4
  347. package/SVF-doxygen/html/search/variables_b.js +10 -10
  348. package/SVF-doxygen/html/search/variables_c.js +45 -45
  349. package/SVF-doxygen/html/search/variables_d.js +56 -56
  350. package/SVF-doxygen/html/search/variables_e.js +123 -123
  351. package/SVF-doxygen/html/search/variables_f.js +30 -30
  352. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  353. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  354. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  355. package/package.json +1 -1
  356. package/svf/lib/MemoryModel/AccessPath.cpp +3 -12
  357. package/svf/lib/MemoryModel/PointerAnalysis.cpp +0 -3
  358. package/svf/lib/SVFIR/SVFType.cpp +1 -2
  359. package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -5
  360. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +1 -34
  361. package/svf-llvm/lib/LLVMUtil.cpp +1 -32
  362. package/svf-llvm/lib/SymbolTableBuilder.cpp +8 -8
@@ -191,398 +191,365 @@ $(function() {
191
191
  <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4b5d4c7ca2c580ace7305bfed58ffce8">getPointeeType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *value);</div>
192
192
  <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
193
193
  <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
194
- <div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772"> 135</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs)</div>
195
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div>
196
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div>
197
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfcall = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(cs);</div>
198
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> svfcs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfcall);</div>
199
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div>
200
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfcs))</div>
201
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
202
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(svfcs);</div>
203
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs-&gt;getArgOperand(argPos);</div>
204
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</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>
205
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// TODO: getPtrElementType need type inference</span></div>
206
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; refType = SVFUtil::dyn_cast&lt;PointerType&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div>
207
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
208
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Case 2: heap object held by return value.</span></div>
209
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span></div>
210
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
211
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfcs)</div>
212
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; &amp;&amp; <span class="stringliteral">&quot;Must be heap alloc via ret, or static allocation site&quot;</span>);</div>
213
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; refType = SVFUtil::dyn_cast&lt;PointerType&gt;(cs-&gt;getType());</div>
214
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
215
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; assert(refType &amp;&amp; <span class="stringliteral">&quot;Allocated object must be held by a pointer-typed value.&quot;</span>);</div>
216
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> refType;</div>
217
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div>
218
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
219
- <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aa81614cdb6a2a912638d5dc980480af7"> 160</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div>
220
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
221
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">getLLVMCallSite</a>(inst);</div>
222
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">getRefTypeOfHeapAllocOrStatic</a>(cs);</div>
223
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
224
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
225
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">isObject</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ref);</div>
194
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9a7e07cbd487e829059f52a0fb62693f">inferTypeOfHeapObjOrStaticObj</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div>
195
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
196
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">isObject</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ref);</div>
197
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
198
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
199
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
200
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
201
+ <div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449"> 148</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">ArgInDeadFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
202
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div>
203
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val)</div>
204
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
205
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
206
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
207
+ <div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f"> 156</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">ArgInProgEntryFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
208
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div>
209
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val) &amp;&amp;</div>
210
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(</div>
211
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
212
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}</div>
213
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">isPtrInUncalledFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value);</div>
214
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
215
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
226
216
  <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
227
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
228
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
217
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div>
218
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div>
219
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</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_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(fun);</div>
220
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div>
229
221
  <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
230
- <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449"> 177</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">ArgInDeadFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
222
+ <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29"> 177</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">isArgOfUncalledFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
231
223
  <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div>
232
224
  <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val)</div>
233
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">isUncalledFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
225
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
234
226
  <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div>
235
227
  <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
236
- <div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f"> 185</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">ArgInProgEntryFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
237
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div>
238
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val) &amp;&amp;</div>
239
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(</div>
240
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
241
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div>
242
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">isPtrInUncalledFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value);</div>
228
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abb4b5ed04ec70a2e7fca8198132370cf">basicBlockHasRetInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb);</div>
229
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
230
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">functionDoesNotRet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
231
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
232
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">getFunReachableBBs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* svfFun,</div>
233
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; std::vector&lt;const SVFBasicBlock*&gt;&amp; bbs);</div>
243
234
  <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
244
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
245
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
246
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div>
247
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;{</div>
248
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</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_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">LLVMUtil::isProgEntryFunction</a>(fun);</div>
249
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
235
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
236
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
237
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">stripAllCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
238
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
239
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
250
240
  <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
251
- <div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29"> 206</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">isArgOfUncalledFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
252
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;{</div>
253
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;Argument&gt;(val)</div>
254
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; &amp;&amp; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">isNoCallerFunction</a>(SVFUtil::cast&lt;Argument&gt;(val)-&gt;getParent());</div>
255
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
256
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
257
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abb4b5ed04ec70a2e7fca8198132370cf">basicBlockHasRetInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb);</div>
258
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
259
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">functionDoesNotRet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
260
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
261
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">getFunReachableBBs</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* svfFun,</div>
262
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; std::vector&lt;const SVFBasicBlock*&gt;&amp; bbs);</div>
263
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
264
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07bd47ccfd02c5a2a6db26b537b2184f">stripConstantCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
241
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
242
+ <div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685"> 207</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
243
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{</div>
244
+ <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>
245
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
246
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::GetElementPtr)</div>
247
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
248
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
249
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
250
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div>
251
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
252
+ <div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463"> 217</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
253
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div>
254
+ <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>
255
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
256
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::IntToPtr)</div>
257
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
258
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
259
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
260
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div>
265
261
  <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
266
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">stripAllCasts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
267
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div>
268
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">getTypeOfHeapAlloc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div>
269
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
270
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">getFirstUseViaCastInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
262
+ <div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f"> 227</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">isPtr2IntConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
263
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div>
264
+ <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>
265
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
266
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::PtrToInt)</div>
267
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
268
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
269
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
270
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div>
271
271
  <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
272
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
273
- <div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685"> 239</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">isGepConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
274
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;{</div>
275
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* constExpr = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(val))</div>
276
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div>
277
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::GetElementPtr)</div>
278
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
279
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
280
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
281
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div>
282
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
283
- <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463"> 249</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">isInt2PtrConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
284
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div>
285
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</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>
286
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div>
287
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::IntToPtr)</div>
288
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
289
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
290
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
291
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div>
292
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
293
- <div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f"> 259</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">isPtr2IntConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
294
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div>
295
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</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>
296
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
297
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::PtrToInt)</div>
298
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
299
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
300
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
301
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div>
302
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
303
- <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc"> 269</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">isCastConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
304
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div>
305
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</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>
306
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
307
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::BitCast)</div>
308
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
309
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
310
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
311
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div>
312
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
313
- <div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e"> 279</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">isSelectConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
314
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;{</div>
315
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</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>
316
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div>
317
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::Select)</div>
318
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
319
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div>
320
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
321
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
322
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
323
- <div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8"> 289</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">isTruncConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
324
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;{</div>
325
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</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>
326
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
327
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::Trunc ||</div>
328
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPTrunc ||</div>
329
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; constExpr-&gt;getOpcode() == Instruction::ZExt ||</div>
330
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; constExpr-&gt;getOpcode() == Instruction::SExt ||</div>
331
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPExt)</div>
332
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
333
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
334
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
335
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;}</div>
336
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
337
- <div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a"> 303</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">isCmpConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
338
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;{</div>
339
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</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>
340
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
341
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::ICmp ||</div>
342
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; constExpr-&gt;getOpcode() == Instruction::FCmp)</div>
343
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
344
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
345
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
346
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div>
347
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
348
- <div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4"> 314</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">isBinaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
349
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;{</div>
350
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</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>
351
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div>
352
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span> ((constExpr-&gt;getOpcode() &gt;= Instruction::BinaryOpsBegin) &amp;&amp;</div>
353
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; (constExpr-&gt;getOpcode() &lt;= Instruction::BinaryOpsEnd))</div>
354
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
355
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
356
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
357
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div>
272
+ <div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc"> 237</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">isCastConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
273
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;{</div>
274
+ <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>
275
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div>
276
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::BitCast)</div>
277
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
278
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
279
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
280
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div>
281
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
282
+ <div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e"> 247</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">isSelectConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
283
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div>
284
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</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>
285
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
286
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::Select)</div>
287
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
288
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
289
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
290
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div>
291
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
292
+ <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8"> 257</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">isTruncConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
293
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div>
294
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</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>
295
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div>
296
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::Trunc ||</div>
297
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPTrunc ||</div>
298
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; constExpr-&gt;getOpcode() == Instruction::ZExt ||</div>
299
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; constExpr-&gt;getOpcode() == Instruction::SExt ||</div>
300
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; constExpr-&gt;getOpcode() == Instruction::FPExt)</div>
301
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
302
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
303
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
304
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
305
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
306
+ <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a"> 271</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">isCmpConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
307
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div>
308
+ <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>
309
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
310
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (constExpr-&gt;getOpcode() == Instruction::ICmp ||</div>
311
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; constExpr-&gt;getOpcode() == Instruction::FCmp)</div>
312
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
313
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
314
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
315
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div>
316
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
317
+ <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4"> 282</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">isBinaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
318
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;{</div>
319
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</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>
320
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div>
321
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span> ((constExpr-&gt;getOpcode() &gt;= Instruction::BinaryOpsBegin) &amp;&amp;</div>
322
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; (constExpr-&gt;getOpcode() &lt;= Instruction::BinaryOpsEnd))</div>
323
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
324
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
325
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
326
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;}</div>
327
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div>
328
+ <div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349"> 293</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">isUnaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
329
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;{</div>
330
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</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>
331
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
332
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span> ((constExpr-&gt;getOpcode() &gt;= Instruction::UnaryOpsBegin) &amp;&amp;</div>
333
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; (constExpr-&gt;getOpcode() &lt;= Instruction::UnaryOpsEnd))</div>
334
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
335
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
336
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
337
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div>
338
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
339
+ <div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d"> 305</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod)</div>
340
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div>
341
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div>
342
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>)</div>
343
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div>
344
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> dl;</div>
345
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div>
346
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
347
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
348
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; std::vector&lt;const SVFInstruction*&gt;&amp; instList);</div>
349
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
350
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
351
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; std::vector&lt;const SVFInstruction*&gt;&amp; instList);</div>
352
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
353
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
354
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; std::vector&lt;const Instruction*&gt;&amp; instList);</div>
358
355
  <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
359
- <div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349"> 325</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">isUnaryConstantExpr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
360
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;{</div>
361
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</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>
362
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div>
363
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> ((constExpr-&gt;getOpcode() &gt;= Instruction::UnaryOpsBegin) &amp;&amp;</div>
364
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; (constExpr-&gt;getOpcode() &lt;= Instruction::UnaryOpsEnd))</div>
365
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> constExpr;</div>
366
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
367
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
368
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;}</div>
369
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div>
370
- <div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d"> 337</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a151fd7fb2b2ebe72af7c417defbb4f4d">getDataLayout</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod)</div>
371
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;{</div>
372
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *dl = <span class="keyword">nullptr</span>;</div>
373
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span> (dl == <span class="keyword">nullptr</span>)</div>
374
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div>
375
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> dl;</div>
376
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div>
356
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
357
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; std::vector&lt;const Instruction*&gt;&amp; instList);</div>
358
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
359
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">getBBPredecessorNum</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* BB);</div>
360
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
361
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">isIRFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div>
362
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
363
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">processArguments</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span>&amp; arg_num, <span class="keywordtype">char</span>** arg_value,</div>
364
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; std::vector&lt;std::string&gt;&amp; moduleNameVec);</div>
365
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div>
366
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; </div>
367
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
368
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> field_index);</div>
377
369
  <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div>
378
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
379
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; std::vector&lt;const SVFInstruction*&gt;&amp; instList);</div>
380
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
381
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
382
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; std::vector&lt;const SVFInstruction*&gt;&amp; instList);</div>
383
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; </div>
384
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">getNextInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
385
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; std::vector&lt;const Instruction*&gt;&amp; instList);</div>
386
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; </div>
387
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">getPrevInsts</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst,</div>
388
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; std::vector&lt;const Instruction*&gt;&amp; instList);</div>
389
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
390
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">getBBPredecessorNum</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* BB);</div>
391
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div>
392
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">isIRFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; filename);</div>
393
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; </div>
394
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">processArguments</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span>&amp; arg_num, <span class="keywordtype">char</span>** arg_value,</div>
395
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; std::vector&lt;std::string&gt;&amp; moduleNameVec);</div>
396
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div>
397
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
398
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
399
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">getTypeSizeInBytes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> field_index);</div>
400
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
401
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">getSourceLoc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
402
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">getSourceLocOfFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
403
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
404
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">isIntrinsicInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div>
405
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">isIntrinsicFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func);</div>
406
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
407
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;std::vector&lt;const Function *&gt; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">getCalledFunctions</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
408
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;std::vector&lt;std::string&gt; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8cd4d6410017b9e5f47f2f88450b78d8">getFunAnnotations</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
409
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">removeFunAnnotations</a>(std::vector&lt;Function*&gt;&amp; removedFuncList);</div>
410
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#acee7c2fb08e111eda4d91ce5479de05e">isUnusedGlobalVariable</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global);</div>
411
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae2b444bb3e7a27d77386f588a78af8e2">removeUnusedGlobalVariables</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* module);</div>
412
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0ecff33105811b1e5ebc83afee76da27">removeUnusedFuncsAndAnnotationsAndGlobalVariables</a>(std::vector&lt;Function*&gt; removedFuncList);</div>
413
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
414
- <div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92"> 392</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVFType2ByteSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
415
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;{</div>
416
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">getLLVMType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
417
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">llvm::PointerType</a>* llvm_rhs_ptr = SVFUtil::dyn_cast&lt;PointerType&gt;(llvm_rhs);</div>
418
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; assert(llvm_rhs_ptr &amp;&amp; <span class="stringliteral">&quot;not a pointer type?&quot;</span>);</div>
419
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// TODO: getPtrElementType need type inference</span></div>
420
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ptrElementType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(llvm_rhs_ptr);</div>
421
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">LLVMUtil::getTypeSizeInBytes</a>(ptrElementType);</div>
422
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_elem_size = -1;</div>
423
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span> (ptrElementType-&gt;isArrayTy() &amp;&amp; llvm_rhs_size &gt; 0)</div>
424
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div>
425
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">size_t</span> array_len = ptrElementType-&gt;getArrayNumElements();</div>
426
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; llvm_elem_size = llvm_rhs_size / array_len;</div>
427
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
428
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span></div>
429
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div>
430
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; llvm_elem_size =llvm_rhs_size;</div>
431
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
432
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> llvm_elem_size;</div>
433
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;}</div>
434
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
435
- <div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619"> 414</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">getFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div>
436
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;{</div>
437
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
438
- <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div>
439
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; </div>
440
- <div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be"> 420</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
441
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;{</div>
442
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a>&lt;<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
443
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>&gt;(val);</div>
444
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div>
445
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
446
- <div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a"> 427</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
447
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div>
448
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div>
449
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div>
450
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;hasGlobalRep(gvar))</div>
451
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div>
452
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
453
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> val;</div>
454
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;}</div>
455
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
456
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div>
370
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">getSourceLoc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
371
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">getSourceLocOfFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
372
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
373
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">isIntrinsicInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div>
374
+ <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">isIntrinsicFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func);</div>
375
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
376
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;std::vector&lt;const Function *&gt; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">getCalledFunctions</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
377
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;std::vector&lt;std::string&gt; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8cd4d6410017b9e5f47f2f88450b78d8">getFunAnnotations</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
378
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">removeFunAnnotations</a>(std::vector&lt;Function*&gt;&amp; removedFuncList);</div>
379
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#acee7c2fb08e111eda4d91ce5479de05e">isUnusedGlobalVariable</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>&amp; global);</div>
380
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ae2b444bb3e7a27d77386f588a78af8e2">removeUnusedGlobalVariables</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* module);</div>
381
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0ecff33105811b1e5ebc83afee76da27">removeUnusedFuncsAndAnnotationsAndGlobalVariables</a>(std::vector&lt;Function*&gt; removedFuncList);</div>
382
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div>
383
+ <div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92"> 360</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVFType2ByteSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
384
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div>
385
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* llvm_rhs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">getLLVMType</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
386
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">llvm::PointerType</a>* llvm_rhs_ptr = SVFUtil::dyn_cast&lt;PointerType&gt;(llvm_rhs);</div>
387
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; assert(llvm_rhs_ptr &amp;&amp; <span class="stringliteral">&quot;not a pointer type?&quot;</span>);</div>
388
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">// TODO: getPtrElementType need type inference</span></div>
389
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ptrElementType = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(llvm_rhs_ptr);</div>
390
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_rhs_size = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">LLVMUtil::getTypeSizeInBytes</a>(ptrElementType);</div>
391
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> llvm_elem_size = -1;</div>
392
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> (ptrElementType-&gt;isArrayTy() &amp;&amp; llvm_rhs_size &gt; 0)</div>
393
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div>
394
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordtype">size_t</span> array_len = ptrElementType-&gt;getArrayNumElements();</div>
395
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; llvm_elem_size = llvm_rhs_size / array_len;</div>
396
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div>
397
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">else</span></div>
398
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div>
399
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; llvm_elem_size =llvm_rhs_size;</div>
400
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
401
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> llvm_elem_size;</div>
402
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div>
403
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
404
+ <div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619"> 382</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">getFunction</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div>
405
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div>
406
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div>
407
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</div>
408
+ <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
409
+ <div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be"> 388</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">isConstDataOrAggData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
410
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;{</div>
411
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a>&lt;<a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>, <a class="code" href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">ConstantAggregate</a>,</div>
412
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">MetadataAsValue</a>, <a class="code" href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">BlockAddress</a>&gt;(val);</div>
413
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div>
414
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
415
+ <div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a"> 395</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div>
416
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div>
417
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div>
418
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
419
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;hasGlobalRep(gvar))</div>
420
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div>
421
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
422
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> val;</div>
423
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;}</div>
424
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
425
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val);</div>
426
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
427
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
428
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
429
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="comment">// Dump Control Flow Graph of llvm function, with instructions</span></div>
430
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">viewCFG</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
431
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
432
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="comment">// Dump Control Flow Graph of llvm function, without instructions</span></div>
433
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">viewCFGOnly</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
434
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
435
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="comment">/*</span></div>
436
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment"> * Get the vtable struct of a class.</span></div>
437
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="comment"> *</span></div>
438
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="comment"> * Given the class:</span></div>
439
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="comment"> *</span></div>
440
+ <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment"> * class A {</span></div>
441
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment"> * virtual ~A();</span></div>
442
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment"> * };</span></div>
443
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment"> * A::~A() = default;</span></div>
444
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment"> *</span></div>
445
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment"> * The corresponding vtable @_ZTV1A is of type:</span></div>
446
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="comment"> *</span></div>
447
+ <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment"> * { [4 x i8*] }</span></div>
448
+ <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="comment"> *</span></div>
449
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment"> * If the program has been compiled with AddressSanitizer,</span></div>
450
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment"> * the vtable will have redzones and appear as:</span></div>
451
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment"> *</span></div>
452
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment"> * { { [4 x i8*] }, [32 x i8] }</span></div>
453
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment"> *</span></div>
454
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment"> * See https://github.com/SVF-tools/SVF/issues/1114 for more.</span></div>
455
+ <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment"> */</span></div>
456
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">getVtblStruct</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a> *vtbl);</div>
457
457
  <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
458
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
459
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
460
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment">// Dump Control Flow Graph of llvm function, with instructions</span></div>
461
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">viewCFG</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
462
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
463
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment">// Dump Control Flow Graph of llvm function, without instructions</span></div>
464
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">viewCFGOnly</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
465
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; </div>
466
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment">/*</span></div>
467
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment"> * Get the vtable struct of a class.</span></div>
468
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="comment"> *</span></div>
469
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="comment"> * Given the class:</span></div>
458
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">isValVtbl</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
459
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">isVirtualCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
460
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">isConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
461
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">isDestructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
462
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47bbc0527ced570d576ccc2f9df409cb">isCPPThunkFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
463
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aab1cb59036d181e20a477bf1eebd81ff">getThunkTarget</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
464
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
465
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="comment">/*</span></div>
466
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment"> * VtableA = {&amp;A::foo}</span></div>
467
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment"> * A::A(this){</span></div>
468
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment"> * *this = &amp;VtableA;</span></div>
469
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="comment"> * }</span></div>
470
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="comment"> *</span></div>
470
471
  <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="comment"> *</span></div>
471
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="comment"> * class A {</span></div>
472
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment"> * virtual ~A();</span></div>
473
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment"> * };</span></div>
474
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment"> * A::~A() = default;</span></div>
475
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="comment"> *</span></div>
476
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="comment"> * The corresponding vtable @_ZTV1A is of type:</span></div>
477
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="comment"> *</span></div>
478
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment"> * { [4 x i8*] }</span></div>
479
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment"> *</span></div>
480
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="comment"> * If the program has been compiled with AddressSanitizer,</span></div>
481
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="comment"> * the vtable will have redzones and appear as:</span></div>
482
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="comment"> *</span></div>
483
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="comment"> * { { [4 x i8*] }, [32 x i8] }</span></div>
484
- <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment"> *</span></div>
485
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="comment"> * See https://github.com/SVF-tools/SVF/issues/1114 for more.</span></div>
486
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment"> */</span></div>
487
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">getVtblStruct</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a> *vtbl);</div>
488
- <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; </div>
489
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">isValVtbl</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
490
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a45da980cb7c085942bb8e6010db9d84f">isLoadVtblInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* loadInst);</div>
491
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">isVirtualCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
492
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">isConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
493
- <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">isDestructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
494
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47bbc0527ced570d576ccc2f9df409cb">isCPPThunkFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
495
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aab1cb59036d181e20a477bf1eebd81ff">getThunkTarget</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>);</div>
496
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; </div>
497
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment">/*</span></div>
498
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment"> * VtableA = {&amp;A::foo}</span></div>
499
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment"> * A::A(this){</span></div>
500
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment"> * *this = &amp;VtableA;</span></div>
501
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment"> * }</span></div>
502
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="comment"> *</span></div>
503
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="comment"> *</span></div>
504
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment"> * A* p = new A;</span></div>
505
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment"> * cs: p-&gt;foo(...)</span></div>
506
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment"> * ==&gt;</span></div>
507
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="comment"> * vtptr = *p;</span></div>
508
- <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment"> * vfn = &amp;vtptr[i]</span></div>
509
- <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment"> * %funp = *vfn</span></div>
510
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="comment"> * call %funp(p,...)</span></div>
511
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="comment"> * getConstructorThisPtr(A) return &quot;this&quot; pointer</span></div>
512
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="comment"> * getVCallThisPtr(cs) return p (this pointer)</span></div>
513
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment"> * getVCallVtblPtr(cs) return vtptr</span></div>
514
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment"> * getVCallIdx(cs) return i</span></div>
515
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"> * getClassNameFromVtblObj(VtableA) return</span></div>
516
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="comment"> * getClassNameFromType(type of p) return type A</span></div>
517
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="comment"> */</span></div>
518
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">getConstructorThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
519
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">getVCallThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
520
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">getVCallVtblPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
521
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">getVCallIdx</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
522
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">getClassNameFromType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* ty);</div>
523
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">getClassNameOfThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
524
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">getFunNameOfVCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
525
- <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">VCallInCtorOrDtor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
526
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
527
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="comment">/*</span></div>
528
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="comment"> * A(A* this){</span></div>
529
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment"> * store this this.addr;</span></div>
530
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="comment"> * tmp = load this.addr;</span></div>
531
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="comment"> * this1 = bitcast(tmp);</span></div>
532
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="comment"> * B(this1);</span></div>
533
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="comment"> * }</span></div>
534
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="comment"> * this and this1 are the same thisPtr in the constructor</span></div>
535
- <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="comment"> */</span></div>
536
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8873eb1cce9496f9699eab22c4a6d3ce">isSameThisPtrInConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr1,</div>
537
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisPtr2);</div>
538
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div>
539
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">dumpValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
540
- <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; </div>
541
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6e8682537cf5bed808df439bd7e1add9">dumpType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
542
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; </div>
543
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; </div>
544
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9001722dd27bf487351725c3d7b65f2f">getSuccBBandCondValPairVec</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;switchInst, <a class="code" href="namespaceSVF.html#a8de26e1810ea0c3b1e8ad62f1c8a864d">SuccBBAndCondValPairVec</a> &amp;vec);</div>
545
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
546
- <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a33e8378ae1a911169394e545a4ba2220">getCaseValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;switchInst, <a class="code" href="namespaceSVF.html#a255efa5be786996cbdd0c1f3d98b8400">SuccBBAndCondValPair</a> &amp;succBB2CondVal);</div>
547
- <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; </div>
548
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;} <span class="comment">// End namespace LLVMUtil</span></div>
549
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; </div>
550
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;} <span class="comment">// End namespace SVF</span></div>
551
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; </div>
552
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_LLVMUTIL_H_ */</span><span class="preprocessor"></span></div>
472
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="comment"> * A* p = new A;</span></div>
473
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment"> * cs: p-&gt;foo(...)</span></div>
474
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="comment"> * ==&gt;</span></div>
475
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="comment"> * vtptr = *p;</span></div>
476
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="comment"> * vfn = &amp;vtptr[i]</span></div>
477
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="comment"> * %funp = *vfn</span></div>
478
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="comment"> * call %funp(p,...)</span></div>
479
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment"> * getConstructorThisPtr(A) return &quot;this&quot; pointer</span></div>
480
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment"> * getVCallThisPtr(cs) return p (this pointer)</span></div>
481
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="comment"> * getVCallVtblPtr(cs) return vtptr</span></div>
482
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="comment"> * getVCallIdx(cs) return i</span></div>
483
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="comment"> * getClassNameFromVtblObj(VtableA) return</span></div>
484
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="comment"> * getClassNameFromType(type of p) return type A</span></div>
485
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="comment"> */</span></div>
486
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">getConstructorThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun);</div>
487
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">getVCallThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
488
+ <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">getVCallVtblPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
489
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">getVCallIdx</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
490
+ <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">getClassNameFromType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* ty);</div>
491
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">getClassNameOfThisPtr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
492
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">getFunNameOfVCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
493
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">VCallInCtorOrDtor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* cs);</div>
494
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
495
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="comment">/*</span></div>
496
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="comment"> * A(A* this){</span></div>
497
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="comment"> * store this this.addr;</span></div>
498
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment"> * tmp = load this.addr;</span></div>
499
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment"> * this1 = bitcast(tmp);</span></div>
500
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment"> * B(this1);</span></div>
501
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment"> * }</span></div>
502
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment"> * this and this1 are the same thisPtr in the constructor</span></div>
503
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="comment"> */</span></div>
504
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8873eb1cce9496f9699eab22c4a6d3ce">isSameThisPtrInConstructor</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* thisPtr1,</div>
505
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* thisPtr2);</div>
506
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
507
+ <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">dumpValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val);</div>
508
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; </div>
509
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a6e8682537cf5bed808df439bd7e1add9">dumpType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
510
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div>
511
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
512
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9001722dd27bf487351725c3d7b65f2f">getSuccBBandCondValPairVec</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;switchInst, <a class="code" href="namespaceSVF.html#a8de26e1810ea0c3b1e8ad62f1c8a864d">SuccBBAndCondValPairVec</a> &amp;vec);</div>
513
+ <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; </div>
514
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a33e8378ae1a911169394e545a4ba2220">getCaseValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> &amp;switchInst, <a class="code" href="namespaceSVF.html#a255efa5be786996cbdd0c1f3d98b8400">SuccBBAndCondValPair</a> &amp;succBB2CondVal);</div>
515
+ <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; </div>
516
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;} <span class="comment">// End namespace LLVMUtil</span></div>
517
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; </div>
518
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;} <span class="comment">// End namespace SVF</span></div>
519
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; </div>
520
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_LLVMUTIL_H_ */</span><span class="preprocessor"></span></div>
553
521
  </div><!-- fragment --></div><!-- contents -->
554
522
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00753">LLVMUtil.cpp:753</a></div></div>
555
523
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a38ce45ae5f017c90115ce444b44d478c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a38ce45ae5f017c90115ce444b44d478c">SVF::LLVMUtil::stripAllCasts</a></div><div class="ttdeci">const Value * stripAllCasts(const Value *val)</div><div class="ttdoc">Strip off the all casts.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00328">LLVMUtil.cpp:328</a></div></div>
556
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afa2f8c8ab19c75547c26ede53b9f6159"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">SVF::LLVMUtil::dumpValue</a></div><div class="ttdeci">std::string dumpValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01359">LLVMUtil.cpp:1359</a></div></div>
524
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afa2f8c8ab19c75547c26ede53b9f6159"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afa2f8c8ab19c75547c26ede53b9f6159">SVF::LLVMUtil::dumpValue</a></div><div class="ttdeci">std::string dumpValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01328">LLVMUtil.cpp:1328</a></div></div>
557
525
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abc9c437b7da5cfe3d988dadfcbd0635f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abc9c437b7da5cfe3d988dadfcbd0635f">SVF::LLVMUtil::viewCFG</a></div><div class="ttdeci">void viewCFG(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00309">LLVMUtil.cpp:309</a></div></div>
558
526
  <div class="ttc" id="anamespaceSVF_html_a8de26e1810ea0c3b1e8ad62f1c8a864d"><div class="ttname"><a href="namespaceSVF.html#a8de26e1810ea0c3b1e8ad62f1c8a864d">SVF::SuccBBAndCondValPairVec</a></div><div class="ttdeci">std::vector&lt; SuccBBAndCondValPair &gt; SuccBBAndCondValPairVec</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00184">BasicTypes.h:184</a></div></div>
559
527
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00101">LLVMModule.h:101</a></div></div>
560
528
  <div class="ttc" id="anamespaceSVF_html_a773900ea3c75022657aac1abf59fa51b"><div class="ttname"><a href="namespaceSVF.html#a773900ea3c75022657aac1abf59fa51b">SVF::MetadataAsValue</a></div><div class="ttdeci">llvm::MetadataAsValue MetadataAsValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
561
529
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aca11801ed6ef6ff8d2a1e85bc0fc5794"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">SVF::LLVMUtil::isObject</a></div><div class="ttdeci">bool isObject(const Value *ref)</div><div class="ttdoc">Return true if this value refers to a object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00054">LLVMUtil.cpp:54</a></div></div>
562
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00314">LLVMUtil.h:314</a></div></div>
530
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a35b36394af726c679fe2c1b6051db7c4"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a35b36394af726c679fe2c1b6051db7c4">SVF::LLVMUtil::isBinaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isBinaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00282">LLVMUtil.h:282</a></div></div>
563
531
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a08fbef6fe3e2af96a49f79ce23accb01"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a08fbef6fe3e2af96a49f79ce23accb01">SVF::LLVMUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00976">LLVMUtil.cpp:976</a></div></div>
564
532
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00503">LLVMUtil.cpp:503</a></div></div>
565
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adad59a953dd81e213db71babbbc9df2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil::ArgInProgEntryFunction</a></div><div class="ttdeci">bool ArgInProgEntryFunction(const Value *val)</div><div class="ttdoc">Return true if this is an argument of a program entry function (e.g. main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00185">LLVMUtil.h:185</a></div></div>
533
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_adad59a953dd81e213db71babbbc9df2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#adad59a953dd81e213db71babbbc9df2f">SVF::LLVMUtil::ArgInProgEntryFunction</a></div><div class="ttdeci">bool ArgInProgEntryFunction(const Value *val)</div><div class="ttdoc">Return true if this is an argument of a program entry function (e.g. main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00156">LLVMUtil.h:156</a></div></div>
566
534
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00279">LLVMModule.h:279</a></div></div>
567
535
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
568
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9001722dd27bf487351725c3d7b65f2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9001722dd27bf487351725c3d7b65f2f">SVF::LLVMUtil::getSuccBBandCondValPairVec</a></div><div class="ttdeci">void getSuccBBandCondValPairVec(const SwitchInst &amp;switchInst, SuccBBAndCondValPairVec &amp;vec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01322">LLVMUtil.cpp:1322</a></div></div>
536
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9001722dd27bf487351725c3d7b65f2f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9001722dd27bf487351725c3d7b65f2f">SVF::LLVMUtil::getSuccBBandCondValPairVec</a></div><div class="ttdeci">void getSuccBBandCondValPairVec(const SwitchInst &amp;switchInst, SuccBBAndCondValPairVec &amp;vec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01291">LLVMUtil.cpp:1291</a></div></div>
569
537
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad56c48be3ba6ebb95416623256524097"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad56c48be3ba6ebb95416623256524097">SVF::LLVMUtil::getCallee</a></div><div class="ttdeci">const Function * getCallee(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00074">LLVMUtil.h:74</a></div></div>
570
538
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
571
539
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af629cd4994be83b34a3a38464783f54e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af629cd4994be83b34a3a38464783f54e">SVF::LLVMUtil::getLLVMFunction</a></div><div class="ttdeci">const Function * getLLVMFunction(const Value *val)</div><div class="ttdoc">Return LLVM function if this value is.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00082">LLVMUtil.h:82</a></div></div>
572
- <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
573
540
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
574
541
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
575
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a898e9c2ed163b618f2e86bc251131d8b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">SVF::LLVMUtil::VCallInCtorOrDtor</a></div><div class="ttdeci">bool VCallInCtorOrDtor(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01227">LLVMUtil.cpp:1227</a></div></div>
542
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a898e9c2ed163b618f2e86bc251131d8b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a898e9c2ed163b618f2e86bc251131d8b">SVF::LLVMUtil::VCallInCtorOrDtor</a></div><div class="ttdeci">bool VCallInCtorOrDtor(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01196">LLVMUtil.cpp:1196</a></div></div>
576
543
  <div class="ttc" id="anamespaceSVF_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#l00232">LLVMUtil.cpp:232</a></div></div>
577
544
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a200539f965bff5627abac41920498ee8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a200539f965bff5627abac41920498ee8">SVF::LLVMUtil::getFirstUseViaCastInst</a></div><div class="ttdeci">const Value * getFirstUseViaCastInst(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
545
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9a7e07cbd487e829059f52a0fb62693f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9a7e07cbd487e829059f52a0fb62693f">SVF::LLVMUtil::inferTypeOfHeapObjOrStaticObj</a></div><div class="ttdeci">const Type * inferTypeOfHeapObjOrStaticObj(const Instruction *inst)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00441">LLVMUtil.cpp:441</a></div></div>
578
546
  <div class="ttc" id="anamespaceSVF_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#l00154">LLVMUtil.cpp:154</a></div></div>
579
547
  <div class="ttc" id="anamespaceSVF_html_a412280b134578905248ce0122c5db7c9"><div class="ttname"><a href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SVF::SwitchInst</a></div><div class="ttdeci">llvm::SwitchInst SwitchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00153">BasicTypes.h:153</a></div></div>
580
548
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8ee8de153df3f1bbdebb67185a2731c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const SVFValue *val)</div><div class="ttdoc">Check whether this value points-to a constant object.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00927">LLVMUtil.cpp:927</a></div></div>
581
549
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00201">LLVMModule.h:201</a></div></div>
582
550
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae2b444bb3e7a27d77386f588a78af8e2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae2b444bb3e7a27d77386f588a78af8e2">SVF::LLVMUtil::removeUnusedGlobalVariables</a></div><div class="ttdeci">void removeUnusedGlobalVariables(Module *module)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00667">LLVMUtil.cpp:667</a></div></div>
583
551
  <div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
584
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a41e64f3318e2bf368eebe9a104ef6ad9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">SVF::LLVMUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01288">LLVMUtil.cpp:1288</a></div></div>
585
- <div class="ttc" id="anamespaceSVF_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#l00442">SVFUtil.h:442</a></div></div>
552
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a41e64f3318e2bf368eebe9a104ef6ad9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">SVF::LLVMUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01257">LLVMUtil.cpp:1257</a></div></div>
586
553
  <div class="ttc" id="anamespaceSVF_html_a7cbe1c6567039e72958fd70e423d3597"><div class="ttname"><a href="namespaceSVF.html#a7cbe1c6567039e72958fd70e423d3597">SVF::ConstantAggregate</a></div><div class="ttdeci">llvm::ConstantAggregate ConstantAggregate</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
587
554
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00118">LLVMUtil.cpp:118</a></div></div>
588
555
  <div class="ttc" id="acJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
@@ -591,95 +558,86 @@ $(function() {
591
558
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
592
559
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4f803756f0a73e8564d9544ce27be1c9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">SVF::LLVMUtil::getVtblStruct</a></div><div class="ttdeci">const ConstantStruct * getVtblStruct(const GlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00963">LLVMUtil.cpp:963</a></div></div>
593
560
  <div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
594
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a33e8378ae1a911169394e545a4ba2220"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a33e8378ae1a911169394e545a4ba2220">SVF::LLVMUtil::getCaseValue</a></div><div class="ttdeci">s64_t getCaseValue(const SwitchInst &amp;switchInst, SuccBBAndCondValPair &amp;succBB2CondVal)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01332">LLVMUtil.cpp:1332</a></div></div>
561
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a33e8378ae1a911169394e545a4ba2220"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a33e8378ae1a911169394e545a4ba2220">SVF::LLVMUtil::getCaseValue</a></div><div class="ttdeci">s64_t getCaseValue(const SwitchInst &amp;switchInst, SuccBBAndCondValPair &amp;succBB2CondVal)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01301">LLVMUtil.cpp:1301</a></div></div>
595
562
  <div class="ttc" id="anamespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00081">BasicTypes.h:81</a></div></div>
596
563
  <div class="ttc" id="aThreadAPI_8h_html"><div class="ttname"><a href="ThreadAPI_8h.html">ThreadAPI.h</a></div></div>
597
- <div class="ttc" id="anamespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
598
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00269">LLVMUtil.h:269</a></div></div>
564
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_af983b0e1fbd371d8672e8f03f63084fc"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#af983b0e1fbd371d8672e8f03f63084fc">SVF::LLVMUtil::isCastConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCastConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00237">LLVMUtil.h:237</a></div></div>
599
565
  <div class="ttc" id="anamespaceSVF_html_a956458a8554bf734db1194f320fd4b4c"><div class="ttname"><a href="namespaceSVF.html#a956458a8554bf734db1194f320fd4b4c">SVF::BlockAddress</a></div><div class="ttdeci">llvm::BlockAddress BlockAddress</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
600
566
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
601
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6e8682537cf5bed808df439bd7e1add9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6e8682537cf5bed808df439bd7e1add9">SVF::LLVMUtil::dumpType</a></div><div class="ttdeci">std::string dumpType(const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01370">LLVMUtil.cpp:1370</a></div></div>
602
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &amp;name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00414">LLVMUtil.h:414</a></div></div>
567
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6e8682537cf5bed808df439bd7e1add9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6e8682537cf5bed808df439bd7e1add9">SVF::LLVMUtil::dumpType</a></div><div class="ttdeci">std::string dumpType(const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01339">LLVMUtil.cpp:1339</a></div></div>
568
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a63222955897ba34e921b9cfd8a2a3619"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a63222955897ba34e921b9cfd8a2a3619">SVF::LLVMUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(const std::string &amp;name)</div><div class="ttdoc">Get the corresponding Function based on its name.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00382">LLVMUtil.h:382</a></div></div>
603
569
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
604
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_addcfb0135655706a86f6cc628475fccf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">SVF::LLVMUtil::getConstructorThisPtr</a></div><div class="ttdeci">const Argument * getConstructorThisPtr(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01132">LLVMUtil.cpp:1132</a></div></div>
605
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01082">LLVMUtil.cpp:1082</a></div></div>
570
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_addcfb0135655706a86f6cc628475fccf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#addcfb0135655706a86f6cc628475fccf">SVF::LLVMUtil::getConstructorThisPtr</a></div><div class="ttdeci">const Argument * getConstructorThisPtr(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01101">LLVMUtil.cpp:1101</a></div></div>
571
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a68e7bad8eb537039559d8ddc851032e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a68e7bad8eb537039559d8ddc851032e0">SVF::LLVMUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01051">LLVMUtil.cpp:1051</a></div></div>
606
572
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
607
573
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
608
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8873eb1cce9496f9699eab22c4a6d3ce"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8873eb1cce9496f9699eab22c4a6d3ce">SVF::LLVMUtil::isSameThisPtrInConstructor</a></div><div class="ttdeci">bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01108">LLVMUtil.cpp:1108</a></div></div>
574
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8873eb1cce9496f9699eab22c4a6d3ce"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8873eb1cce9496f9699eab22c4a6d3ce">SVF::LLVMUtil::isSameThisPtrInConstructor</a></div><div class="ttdeci">bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01077">LLVMUtil.cpp:1077</a></div></div>
609
575
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a07c785d931cef3c61e3dab4c615770be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">SVF::LLVMUtil::isPtrInUncalledFunction</a></div><div class="ttdeci">bool isPtrInUncalledFunction(const Value *value)</div><div class="ttdoc">Return true if this is value in a dead function (function without any caller)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00187">LLVMUtil.cpp:187</a></div></div>
610
576
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ac9d6aff1a5e778e45c51b4f3b6d787e0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ac9d6aff1a5e778e45c51b4f3b6d787e0">SVF::LLVMUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const Function *fun)</div><div class="ttdoc">Check whether a function is an entry function (i.e., main)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00102">LLVMUtil.h:102</a></div></div>
611
577
  <div class="ttc" id="acJSON_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>
612
578
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
613
- <div class="ttc" id="anamespaceSVF_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#l00431">SVFUtil.h:431</a></div></div>
614
579
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a76b0d0ac69c170838cfc8ee26f4518a0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a76b0d0ac69c170838cfc8ee26f4518a0">SVF::LLVMUtil::getProgFunction</a></div><div class="ttdeci">const Function * getProgFunction(const std::string &amp;funName)</div><div class="ttdoc">Get program entry function from module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00088">LLVMUtil.h:88</a></div></div>
615
580
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
616
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01211">LLVMUtil.cpp:1211</a></div></div>
617
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00289">LLVMUtil.h:289</a></div></div>
618
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(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="LLVMUtil_8h_source.html#l00420">LLVMUtil.h:420</a></div></div>
581
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01180">LLVMUtil.cpp:1180</a></div></div>
582
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a946a2b51b848c45c6c52f03581ee05b8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil::isTruncConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isTruncConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00257">LLVMUtil.h:257</a></div></div>
583
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(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="LLVMUtil_8h_source.html#l00388">LLVMUtil.h:388</a></div></div>
619
584
  <div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
620
585
  <div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
621
586
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
622
587
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &amp;filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00486">LLVMUtil.cpp:486</a></div></div>
623
588
  <div class="ttc" id="aBasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
624
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00279">LLVMUtil.h:279</a></div></div>
589
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae59b0dc7f29dbd2018e819f77465f66e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil::isSelectConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isSelectConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00247">LLVMUtil.h:247</a></div></div>
625
590
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a523a8c3f9bfaea178733822ac598d552"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a523a8c3f9bfaea178733822ac598d552">SVF::LLVMUtil::removeFunAnnotations</a></div><div class="ttdeci">void removeFunAnnotations(std::vector&lt; Function * &gt; &amp;removedFuncList)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00571">LLVMUtil.cpp:571</a></div></div>
626
591
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00272">LLVMModule.h:272</a></div></div>
627
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01172">LLVMUtil.cpp:1172</a></div></div>
628
- <div class="ttc" id="anamespaceSVF_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#l00337">LLVMUtil.h:337</a></div></div>
629
- <div class="ttc" id="anamespaceSVF_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#l00249">LLVMUtil.h:249</a></div></div>
630
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00259">LLVMUtil.h:259</a></div></div>
631
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00427">LLVMUtil.h:427</a></div></div>
592
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a206973624fcc58e6044c884dba23a754"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a206973624fcc58e6044c884dba23a754">SVF::LLVMUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01141">LLVMUtil.cpp:1141</a></div></div>
593
+ <div class="ttc" id="anamespaceSVF_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#l00305">LLVMUtil.h:305</a></div></div>
594
+ <div class="ttc" id="anamespaceSVF_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#l00217">LLVMUtil.h:217</a></div></div>
595
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2834d135a2385efff783e6e22d2eff1f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2834d135a2385efff783e6e22d2eff1f">SVF::LLVMUtil::isPtr2IntConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isPtr2IntConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00227">LLVMUtil.h:227</a></div></div>
596
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00395">LLVMUtil.h:395</a></div></div>
632
597
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00068">LLVMUtil.h:68</a></div></div>
633
598
  <div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
634
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01023">LLVMUtil.cpp:1023</a></div></div>
599
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00992">LLVMUtil.cpp:992</a></div></div>
635
600
  <div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
636
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00206">LLVMUtil.h:206</a></div></div>
637
- <div class="ttc" id="anamespaceSVF_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#l00340">SVFUtil.h:340</a></div></div>
601
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00177">LLVMUtil.h:177</a></div></div>
638
602
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a5c8cbc986cccb9d84f87aae162df3737"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVF::SVFUtil::isa</a></div><div class="ttdeci">LLVM_NODISCARD bool isa(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00241">Casting.h:241</a></div></div>
639
603
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a610a7777a48132caadec167c8109f044"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">SVF::LLVMModuleSet::getLLVMType</a></div><div class="ttdeci">const Type * getLLVMType(const SVFType *T) const</div><div class="ttdoc">Get LLVM Type.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01261">LLVMModule.cpp:1261</a></div></div>
640
604
  <div class="ttc" id="aLLVMModule_8h_html"><div class="ttname"><a href="LLVMModule_8h.html">LLVMModule.h</a></div></div>
641
605
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abb4b5ed04ec70a2e7fca8198132370cf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abb4b5ed04ec70a2e7fca8198132370cf">SVF::LLVMUtil::basicBlockHasRetInst</a></div><div class="ttdeci">bool basicBlockHasRetInst(const BasicBlock *bb)</div><div class="ttdoc">Return true if the function has a return instruction.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00104">LLVMUtil.cpp:104</a></div></div>
642
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01258">LLVMUtil.cpp:1258</a></div></div>
643
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5cbde00eef789f682df972ae71b44449"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">SVF::LLVMUtil::ArgInDeadFunction</a></div><div class="ttdeci">bool ArgInDeadFunction(const Value *val)</div><div class="ttdoc">whether this is an argument in dead function</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00177">LLVMUtil.h:177</a></div></div>
606
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01227">LLVMUtil.cpp:1227</a></div></div>
607
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5cbde00eef789f682df972ae71b44449"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5cbde00eef789f682df972ae71b44449">SVF::LLVMUtil::ArgInDeadFunction</a></div><div class="ttdeci">bool ArgInDeadFunction(const Value *val)</div><div class="ttdoc">whether this is an argument in dead function</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00148">LLVMUtil.h:148</a></div></div>
644
608
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_acee7c2fb08e111eda4d91ce5479de05e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#acee7c2fb08e111eda4d91ce5479de05e">SVF::LLVMUtil::isUnusedGlobalVariable</a></div><div class="ttdeci">bool isUnusedGlobalVariable(const GlobalVariable &amp;global)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00652">LLVMUtil.cpp:652</a></div></div>
645
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a276a85b292038a197a525e08e9252c92"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVF::LLVMUtil::SVFType2ByteSize</a></div><div class="ttdeci">u32_t SVFType2ByteSize(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00392">LLVMUtil.h:392</a></div></div>
609
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a276a85b292038a197a525e08e9252c92"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a276a85b292038a197a525e08e9252c92">SVF::LLVMUtil::SVFType2ByteSize</a></div><div class="ttdeci">u32_t SVFType2ByteSize(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00360">LLVMUtil.h:360</a></div></div>
646
610
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
647
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47bbc0527ced570d576ccc2f9df409cb"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47bbc0527ced570d576ccc2f9df409cb">SVF::LLVMUtil::isCPPThunkFunction</a></div><div class="ttdeci">bool isCPPThunkFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01054">LLVMUtil.cpp:1054</a></div></div>
648
- <div class="ttc" id="aclassSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01108">SVFValue.h:1108</a></div></div>
611
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a47bbc0527ced570d576ccc2f9df409cb"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a47bbc0527ced570d576ccc2f9df409cb">SVF::LLVMUtil::isCPPThunkFunction</a></div><div class="ttdeci">bool isCPPThunkFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01023">LLVMUtil.cpp:1023</a></div></div>
649
612
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00044">LLVMModule.h:44</a></div></div>
650
- <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00215">LLVMModule.h:215</a></div></div>
651
613
  <div class="ttc" id="anamespaceSVF_html_a67f3f86344f028cacfbeb08caaf7bb0f"><div class="ttname"><a href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">SVF::GlobalValue</a></div><div class="ttdeci">llvm::GlobalValue GlobalValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00086">BasicTypes.h:86</a></div></div>
652
614
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2b32283ee2dbb9cef1d17ab6f2719e0c"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2b32283ee2dbb9cef1d17ab6f2719e0c">SVF::LLVMUtil::getSourceLocOfFunction</a></div><div class="ttdeci">const std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00857">LLVMUtil.cpp:857</a></div></div>
653
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aab1cb59036d181e20a477bf1eebd81ff"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aab1cb59036d181e20a477bf1eebd81ff">SVF::LLVMUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01060">LLVMUtil.cpp:1060</a></div></div>
654
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a207fe02ded216fd0412fc894e13bee6e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const StructType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01240">LLVMUtil.cpp:1240</a></div></div>
655
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae368713463c84425f9a1ad27ff401a47"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae368713463c84425f9a1ad27ff401a47">SVF::LLVMUtil::getTypeOfHeapAlloc</a></div><div class="ttdeci">const Type * getTypeOfHeapAlloc(const Instruction *inst)</div><div class="ttdoc">Get the type of the heap allocation.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00441">LLVMUtil.cpp:441</a></div></div>
615
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aab1cb59036d181e20a477bf1eebd81ff"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aab1cb59036d181e20a477bf1eebd81ff">SVF::LLVMUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01029">LLVMUtil.cpp:1029</a></div></div>
616
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a207fe02ded216fd0412fc894e13bee6e"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a207fe02ded216fd0412fc894e13bee6e">SVF::LLVMUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const StructType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01209">LLVMUtil.cpp:1209</a></div></div>
656
617
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9bd6f54920929e5ad35102ba2f2223da"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">SVF::LLVMUtil::getFunReachableBBs</a></div><div class="ttdeci">void getFunReachableBBs(const Function *svfFun, std::vector&lt; const SVFBasicBlock * &gt; &amp;bbs)</div><div class="ttdoc">Get reachable basic block from function entry.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00069">LLVMUtil.cpp:69</a></div></div>
657
618
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4b5d4c7ca2c580ace7305bfed58ffce8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4b5d4c7ca2c580ace7305bfed58ffce8">SVF::LLVMUtil::getPointeeType</a></div><div class="ttdeci">Type * getPointeeType(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00246">LLVMUtil.cpp:246</a></div></div>
658
619
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
659
620
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2abbe4ed46b2031a981d93b3ba9d3fbd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2abbe4ed46b2031a981d93b3ba9d3fbd">SVF::LLVMUtil::viewCFGOnly</a></div><div class="ttdeci">void viewCFGOnly(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00317">LLVMUtil.cpp:317</a></div></div>
660
621
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector&lt; const SVFInstruction * &gt; &amp;instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00381">LLVMUtil.cpp:381</a></div></div>
661
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a45da980cb7c085942bb8e6010db9d84f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a45da980cb7c085942bb8e6010db9d84f">SVF::LLVMUtil::isLoadVtblInst</a></div><div class="ttdeci">bool isLoadVtblInst(const LoadInst *loadInst)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00985">LLVMUtil.cpp:985</a></div></div>
662
622
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
663
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6c5f2f951463494af2e7b0d3267f2772"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6c5f2f951463494af2e7b0d3267f2772">SVF::LLVMUtil::getRefTypeOfHeapAllocOrStatic</a></div><div class="ttdeci">const PointerType * getRefTypeOfHeapAllocOrStatic(const CallBase *cs)</div><div class="ttdoc">Get the reference type of heap/static object from an allocation site.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00135">LLVMUtil.h:135</a></div></div>
664
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00239">LLVMUtil.h:239</a></div></div>
623
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab5fc50624b5fe83b676b14bec4b99685"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil::isGepConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isGepConstantExpr(const Value *val)</div><div class="ttdoc">Return corresponding constant expression, otherwise return nullptr.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00207">LLVMUtil.h:207</a></div></div>
665
624
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00202">LLVMUtil.cpp:202</a></div></div>
666
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00325">LLVMUtil.h:325</a></div></div>
625
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a215cc9fd716798bbb7f96f5b64e01349"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a215cc9fd716798bbb7f96f5b64e01349">SVF::LLVMUtil::isUnaryConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isUnaryConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00293">LLVMUtil.h:293</a></div></div>
667
626
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ae617611b584e3d899984c376a6e91987"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ae617611b584e3d899984c376a6e91987">SVF::LLVMUtil::getBBPredecessorNum</a></div><div class="ttdeci">u32_t getBBPredecessorNum(const BasicBlock *BB)</div><div class="ttdoc">Get num of BB's predecessors.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00473">LLVMUtil.cpp:473</a></div></div>
668
627
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a5a7dc8680a9714e08b01dd339b85bb20"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil::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="LLVMUtil_8h_source.html#l00046">LLVMUtil.h:46</a></div></div>
669
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00200">LLVMUtil.h:200</a></div></div>
628
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a17cce1a11e1bfc342a9e3e79fe35deef"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil::isNoCallerFunction</a></div><div class="ttdeci">bool isNoCallerFunction(const Function *fun)</div><div class="ttdoc">Function does not have any possible caller in the call graph.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00171">LLVMUtil.h:171</a></div></div>
670
629
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afbd60d5443c7fa1448813d00bb5d0fa7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector&lt; const SVFInstruction * &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#l00352">LLVMUtil.cpp:352</a></div></div>
671
630
  <div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
672
- <div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00626">SVFValue.h:626</a></div></div>
673
631
  <div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
674
632
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a003b769751b93b94bdb011bd704cfde1"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a003b769751b93b94bdb011bd704cfde1">SVF::LLVMUtil::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="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
675
633
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8cd4d6410017b9e5f47f2f88450b78d8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8cd4d6410017b9e5f47f2f88450b78d8">SVF::LLVMUtil::getFunAnnotations</a></div><div class="ttdeci">std::vector&lt; std::string &gt; getFunAnnotations(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00530">LLVMUtil.cpp:530</a></div></div>
676
634
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abf4e75ba6236136399d45c85be2328fe"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">SVF::LLVMUtil::isBlackholeSym</a></div><div class="ttdeci">bool isBlackholeSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00108">LLVMUtil.h:108</a></div></div>
677
635
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a09683d4d88a50fa621809c734465f94d"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a09683d4d88a50fa621809c734465f94d">SVF::LLVMUtil::getTypeSizeInBytes</a></div><div class="ttdeci">u32_t getTypeSizeInBytes(const Type *type)</div><div class="ttdoc">Helper method to get the size of the type from target data layout.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00730">LLVMUtil.cpp:730</a></div></div>
678
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00303">LLVMUtil.h:303</a></div></div>
636
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa0b3e34188f721ff7145e47cb607c79a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil::isCmpConstantExpr</a></div><div class="ttdeci">const ConstantExpr * isCmpConstantExpr(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00271">LLVMUtil.h:271</a></div></div>
679
637
  <div class="ttc" id="anamespaceSVF_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#l00119">LLVMUtil.h:119</a></div></div>
680
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a718c8ec79f36cef5df2f4530541f2770"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">SVF::LLVMUtil::getVCallIdx</a></div><div class="ttdeci">s32_t getVCallIdx(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01299">LLVMUtil.cpp:1299</a></div></div>
638
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a718c8ec79f36cef5df2f4530541f2770"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">SVF::LLVMUtil::getVCallIdx</a></div><div class="ttdeci">s32_t getVCallIdx(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01268">LLVMUtil.cpp:1268</a></div></div>
681
639
  <div class="ttc" id="anamespaceSVF_html_a7332f8059ea95472dcc231de884a5768"><div class="ttname"><a href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">SVF::ConstantData</a></div><div class="ttdeci">llvm::ConstantData ConstantData</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
682
- <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01141">LLVMUtil.cpp:1141</a></div></div>
640
+ <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a6dd1590b82d2bd86766886bd21bc2b72"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a6dd1590b82d2bd86766886bd21bc2b72">SVF::LLVMUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01110">LLVMUtil.cpp:1110</a></div></div>
683
641
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
684
642
  <div class="ttc" id="anamespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00143">BasicTypes.h:143</a></div></div>
685
643
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a847fb0c433b5d3611151636ca4bc5bc5"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a847fb0c433b5d3611151636ca4bc5bc5">SVF::LLVMUtil::isNullPtrSym</a></div><div class="ttdeci">bool isNullPtrSym(const Value *val)</div><div class="ttdoc">Check whether this value is a black hole.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00114">LLVMUtil.h:114</a></div></div>