svf-tools 1.0.458 → 1.0.459

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 (239) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
  3. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -4
  6. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +12 -12
  7. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  8. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  9. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  10. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  11. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +15 -15
  12. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  18. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
  19. package/SVF-doxygen/html/html/DCHG_8h_source.html +6 -6
  20. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/DDAPass_8h_source.html +2 -3
  22. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  24. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +4 -4
  25. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  27. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  31. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  33. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  38. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  39. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
  44. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +10 -10
  45. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +10 -10
  46. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  50. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +7 -7
  52. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  54. package/SVF-doxygen/html/html/MHP_8cpp_source.html +4 -4
  55. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  57. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +4 -4
  58. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  59. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +5 -5
  60. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  61. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -3
  63. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  64. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  68. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  70. package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
  71. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  75. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +3 -3
  76. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +2 -2
  77. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  78. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  79. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +3 -4
  81. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  82. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  86. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +22 -22
  88. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +7 -7
  89. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  91. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +6 -7
  92. package/SVF-doxygen/html/html/SVFUtil_8h.html +6 -3
  93. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +12 -12
  94. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  95. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  96. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  99. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +13 -13
  100. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  101. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -3
  102. package/SVF-doxygen/html/html/TCT_8cpp_source.html +8 -8
  103. package/SVF-doxygen/html/html/TCT_8h_source.html +6 -6
  104. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  106. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  107. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  109. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  110. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  111. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +2 -4
  112. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +67 -68
  113. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  114. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  115. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  116. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  117. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  118. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -4
  119. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +6 -6
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs-members.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +5 -5
  124. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
  125. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  126. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  129. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
  130. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +39 -39
  131. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +8 -8
  133. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +6 -6
  137. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +7 -7
  138. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +7 -7
  142. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
  148. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  149. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +16 -16
  150. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -8
  151. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +13 -13
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  153. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  155. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +8 -8
  156. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -15
  157. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  159. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets-members.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +5 -5
  162. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +8 -8
  165. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  166. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
  169. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +6 -6
  170. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +19 -19
  173. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
  174. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +6 -6
  176. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +32 -32
  178. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  179. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal-members.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +6 -6
  182. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +42 -42
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +7 -7
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +15 -15
  190. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +8 -8
  191. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +16 -16
  192. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  193. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +13 -13
  196. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  197. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  200. package/SVF-doxygen/html/html/cuddInt_8c.html +4 -2
  201. package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -1
  202. package/SVF-doxygen/html/html/cuddInt_8h.html +4 -2
  203. package/SVF-doxygen/html/html/functions_func_g.html +5 -5
  204. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  205. package/SVF-doxygen/html/html/functions_g.html +5 -5
  206. package/SVF-doxygen/html/html/functions_s.html +1 -1
  207. package/SVF-doxygen/html/html/globals_s.html +7 -13
  208. package/SVF-doxygen/html/html/namespaceSVF.html +32 -50
  209. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +100 -58
  210. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +24 -24
  211. package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
  212. package/SVF-doxygen/html/html/namespacemembers_g.html +1 -1
  213. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -3
  214. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
  215. package/SVF-doxygen/html/html/search/all_13.js +7 -8
  216. package/SVF-doxygen/html/html/search/all_7.js +2 -2
  217. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  218. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  219. package/SVF-doxygen/html/html/search/typedefs_11.js +0 -1
  220. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  221. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  222. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  223. package/include/DDA/DDAPass.h +1 -1
  224. package/include/MTA/LockResultValidator.h +1 -1
  225. package/include/MTA/MTA.h +1 -1
  226. package/include/MTA/MTAAnnotator.h +1 -1
  227. package/include/MTA/MTAResultValidator.h +1 -1
  228. package/include/SVF-FE/BreakConstantExpr.h +2 -2
  229. package/include/Util/BasicTypes.h +2 -3
  230. package/include/Util/SVFBasicTypes.h +1 -1
  231. package/include/Util/SVFUtil.h +16 -1
  232. package/include/WPA/WPAPass.h +1 -1
  233. package/lib/MTA/LockResultValidator.cpp +2 -2
  234. package/lib/MTA/MTAResultValidator.cpp +2 -2
  235. package/lib/SVF-FE/DCHG.cpp +8 -8
  236. package/lib/Util/PTAStat.cpp +11 -3
  237. package/lib/Util/SVFUtil.cpp +3 -3
  238. package/lib/Util/ThreadAPI.cpp +12 -4
  239. package/package.json +1 -1
@@ -336,12 +336,12 @@ Additional Inherited Members</h2></td></tr>
336
336
  <p>memcpy and memset is not annotated </p>
337
337
 
338
338
  <p class="definition">Definition at line <a class="el" href="MTAAnnotator_8cpp_source.html#l00018">18</a> of file <a class="el" href="MTAAnnotator_8cpp_source.html">MTAAnnotator.cpp</a>.</p>
339
- <div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; std::string str;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a64fa6f1cac79c47c66b16ac29d2ac3f4">DR_CHECK</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* st = SVFUtil::dyn_cast&lt;StoreInst&gt;(inst))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classSVF_1_1MTAAnnotator.html#afbb8c25a126362ab0a4101866b4fc0ee">numOfAnnotatedSt</a>++;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(inst, st-&gt;getPointerOperand(), rawstr.str());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* ld = SVFUtil::dyn_cast&lt;LoadInst&gt;(inst))</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="classSVF_1_1MTAAnnotator.html#a57df091dbdd4fc947cc5e7aaec123700">numOfAnnotatedLd</a>++;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(inst, ld-&gt;getPointerOperand(), rawstr.str());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
339
+ <div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; std::string str;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a64fa6f1cac79c47c66b16ac29d2ac3f4">DR_CHECK</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* st = SVFUtil::dyn_cast&lt;StoreInst&gt;(inst))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="classSVF_1_1MTAAnnotator.html#afbb8c25a126362ab0a4101866b4fc0ee">numOfAnnotatedSt</a>++;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(inst, st-&gt;getPointerOperand(), rawstr.str());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* ld = SVFUtil::dyn_cast&lt;LoadInst&gt;(inst))</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="classSVF_1_1MTAAnnotator.html#a57df091dbdd4fc947cc5e7aaec123700">numOfAnnotatedLd</a>++;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(inst, ld-&gt;getPointerOperand(), rawstr.str());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
340
340
  <div class="ttc" id="classSVF_1_1Annotator_html_a64fa6f1cac79c47c66b16ac29d2ac3f4"><div class="ttname"><a href="classSVF_1_1Annotator.html#a64fa6f1cac79c47c66b16ac29d2ac3f4">SVF::Annotator::DR_CHECK</a></div><div class="ttdeci">const char * DR_CHECK</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00183">Annotator.h:183</a></div></div>
341
341
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
342
342
  <div class="ttc" id="classSVF_1_1MTAAnnotator_html_afbb8c25a126362ab0a4101866b4fc0ee"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#afbb8c25a126362ab0a4101866b4fc0ee">SVF::MTAAnnotator::numOfAnnotatedSt</a></div><div class="ttdeci">u32_t numOfAnnotatedSt</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00103">MTAAnnotator.h:103</a></div></div>
343
343
  <div class="ttc" id="classSVF_1_1Annotator_html_ad1424270d91f70dee1461b6301ce8091"><div class="ttname"><a href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">SVF::Annotator::addMDTag</a></div><div class="ttdeci">void addMDTag(Instruction *inst, std::string str)</div><div class="ttdoc">Simple add/remove meta data information. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00099">Annotator.h:99</a></div></div>
344
- <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
344
+ <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
345
345
  <div class="ttc" id="classSVF_1_1MTAAnnotator_html_a57df091dbdd4fc947cc5e7aaec123700"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a57df091dbdd4fc947cc5e7aaec123700">SVF::MTAAnnotator::numOfAnnotatedLd</a></div><div class="ttdeci">u32_t numOfAnnotatedLd</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00104">MTAAnnotator.h:104</a></div></div>
346
346
  </div><!-- fragment -->
347
347
  </div>
@@ -400,7 +400,7 @@ Additional Inherited Members</h2></td></tr>
400
400
  <p class="definition">Definition at line <a class="el" href="MTAAnnotator_8cpp_source.html#l00089">89</a> of file <a class="el" href="MTAAnnotator_8cpp_source.html">MTAAnnotator.cpp</a>.</p>
401
401
  <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>* ld = SVFUtil::dyn_cast&lt;LoadInst&gt;(inst))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> ld-&gt;getPointerOperand();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAAnnotator.html#aee9e5ebac543d9a2aab511410b047898">isMemcpy</a>(inst))</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> inst-&gt;getOperand(1);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
402
402
  <div class="ttc" id="classSVF_1_1MTAAnnotator_html_aee9e5ebac543d9a2aab511410b047898"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#aee9e5ebac543d9a2aab511410b047898">SVF::MTAAnnotator::isMemcpy</a></div><div class="ttdeci">bool isMemcpy(const Instruction *I)</div><div class="ttdoc">Check if Function &quot;F&quot; is memcpy. </div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00078">MTAAnnotator.h:78</a></div></div>
403
- <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00109">BasicTypes.h:109</a></div></div>
403
+ <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
404
404
  </div><!-- fragment -->
405
405
  </div>
406
406
  </div>
@@ -423,7 +423,7 @@ Additional Inherited Members</h2></td></tr>
423
423
  <p>Get operand of store and load. </p>
424
424
 
425
425
  <p class="definition">Definition at line <a class="el" href="MTAAnnotator_8cpp_source.html#l00071">71</a> of file <a class="el" href="MTAAnnotator_8cpp_source.html">MTAAnnotator.cpp</a>.</p>
426
- <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* st = SVFUtil::dyn_cast&lt;StoreInst&gt;(inst))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> st-&gt;getPointerOperand();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAAnnotator.html#a36eb47b716c3b44ba5c459052bb0ed93">isMemset</a>(inst))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> inst-&gt;getOperand(0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAAnnotator.html#aee9e5ebac543d9a2aab511410b047898">isMemcpy</a>(inst))</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> inst-&gt;getOperand(0);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
426
+ <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* st = SVFUtil::dyn_cast&lt;StoreInst&gt;(inst))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> st-&gt;getPointerOperand();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAAnnotator.html#a36eb47b716c3b44ba5c459052bb0ed93">isMemset</a>(inst))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> inst-&gt;getOperand(0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAAnnotator.html#aee9e5ebac543d9a2aab511410b047898">isMemcpy</a>(inst))</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> inst-&gt;getOperand(0);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ab696aab940eb187dc81217efe8649af5"><div class="ttname"><a href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">SVF::StoreInst</a></div><div class="ttdeci">llvm::StoreInst StoreInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
427
427
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
428
428
  <div class="ttc" id="classSVF_1_1MTAAnnotator_html_aee9e5ebac543d9a2aab511410b047898"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#aee9e5ebac543d9a2aab511410b047898">SVF::MTAAnnotator::isMemcpy</a></div><div class="ttdeci">bool isMemcpy(const Instruction *I)</div><div class="ttdoc">Check if Function &quot;F&quot; is memcpy. </div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00078">MTAAnnotator.h:78</a></div></div>
429
429
  <div class="ttc" id="classSVF_1_1MTAAnnotator_html_a36eb47b716c3b44ba5c459052bb0ed93"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a36eb47b716c3b44ba5c459052bb0ed93">SVF::MTAAnnotator::isMemset</a></div><div class="ttdeci">bool isMemset(const Instruction *I)</div><div class="ttdoc">Check if Function &quot;F&quot; is memset. </div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00071">MTAAnnotator.h:71</a></div></div>
@@ -494,7 +494,7 @@ Additional Inherited Members</h2></td></tr>
494
494
  <p>Check if Function "F" is memcpy. </p>
495
495
 
496
496
  <p class="definition">Definition at line <a class="el" href="MTAAnnotator_8h_source.html#l00078">78</a> of file <a class="el" href="MTAAnnotator_8h_source.html">MTAAnnotator.h</a>.</p>
497
- <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> SVFFunction* <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> =<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(I);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> F &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48">ExtAPI::EFT_L_A0__A0R_A1R</a> == <a class="code" href="classSVF_1_1ExtAPI.html#a86508e03ca1c2e37fc9414cb2335c3ec">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a90b433cf855adcf34c6ef7f7e5be62b1">get_type</a>(F);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00266">SVFUtil.h:266</a></div></div>
497
+ <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> SVFFunction* <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> =<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(I);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> F &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48">ExtAPI::EFT_L_A0__A0R_A1R</a> == <a class="code" href="classSVF_1_1ExtAPI.html#a86508e03ca1c2e37fc9414cb2335c3ec">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a90b433cf855adcf34c6ef7f7e5be62b1">get_type</a>(F);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
498
498
  <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00008">CFLGrammar.txt:8</a></div></div>
499
499
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a86508e03ca1c2e37fc9414cb2335c3ec"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a86508e03ca1c2e37fc9414cb2335c3ec">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during whole analysis. </div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00114">ExtAPI.h:114</a></div></div>
500
500
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48">SVF::ExtAPI::EFT_L_A0__A0R_A1R</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00065">ExtAPI.h:65</a></div></div>
@@ -529,10 +529,10 @@ Additional Inherited Members</h2></td></tr>
529
529
  <p>Check if Function "F" is memset. </p>
530
530
 
531
531
  <p class="definition">Definition at line <a class="el" href="MTAAnnotator_8h_source.html#l00071">71</a> of file <a class="el" href="MTAAnnotator_8h_source.html">MTAAnnotator.h</a>.</p>
532
- <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> =<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(I)-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> F &amp;&amp; F-&gt;getName().find(<span class="stringliteral">&quot;llvm.memset&quot;</span>) != StringRef::npos;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
533
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00266">SVFUtil.h:266</a></div></div>
532
+ <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> =<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(I)-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> F &amp;&amp; F-&gt;getName().find(<span class="stringliteral">&quot;llvm.memset&quot;</span>) != std::string::npos;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
533
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
534
534
  <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00008">CFLGrammar.txt:8</a></div></div>
535
- <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00150">BasicTypes.h:150</a></div></div>
535
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00149">BasicTypes.h:149</a></div></div>
536
536
  </div><!-- fragment -->
537
537
  </div>
538
538
  </div>
@@ -449,7 +449,7 @@ Static Private Attributes</h2></td></tr>
449
449
  <div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()-&gt;begin(), efi = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()-&gt;end(); fi != efi; ++fi)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bi = ((*fi)-&gt;getLLVMFun())-&gt;begin(), ebi = ((*fi)-&gt;getLLVMFun())-&gt;end(); bi != ebi; ++bi)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = &amp;*bi;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (!bb-&gt;getName().str().compare(0, 2, <span class="stringliteral">&quot;cs&quot;</span>))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> csnum = atoi(bb-&gt;getName().str().substr(2).c_str());</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &amp;bb-&gt;front();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">while</span> (1)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallInst&gt;(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; inst = inst-&gt;getNextNode();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(inst &amp;&amp; <span class="stringliteral">&quot;Wrong cs label, cannot find callsite&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *csInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>&gt;(inst);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>[csnum] = csInst;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>.empty())</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
450
450
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
451
451
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
452
- <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
452
+ <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
453
453
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae2717c467dc7c49fab0ec93bfa4baaab"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">SVF::MTAResultValidator::csnumToInstMap</a></div><div class="ttdeci">csnumToInst csnumToInstMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00140">MTAResultValidator.h:140</a></div></div>
454
454
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
455
455
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_aecaf875c6c88f7ba6fa45540e8436f57"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">SVF::MTAResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00040">MTAResultValidator.h:40</a></div></div>
@@ -689,21 +689,21 @@ Static Private Attributes</h2></td></tr>
689
689
  </div><div class="memdoc">
690
690
 
691
691
  <p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00085">85</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
692
- <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; std::vector&lt;std::string&gt; x = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(inst, arg_num);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (0 == x.size())</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Deal with the the second argument that records all callsites</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span> (std::vector&lt;std::string&gt;::iterator i = x.begin(); i != x.end(); i++)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::vector&lt;std::string&gt; y = <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>((*i), <span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; y[0].erase(y[0].find(<span class="stringliteral">&quot;cs&quot;</span>), 2);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVFUtil::getFunction</a>(y[1]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>[atoi(y[0].c_str())]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callee &amp;&amp; <span class="stringliteral">&quot;callee error&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-&gt;<a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, callee);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; cxt.push_back(csId);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
692
+ <div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; std::vector&lt;std::string&gt; x = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(inst, arg_num);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (0 == x.size())</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Deal with the the second argument that records all callsites</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span> (std::vector&lt;std::string&gt;::iterator i = x.begin(); i != x.end(); i++)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::vector&lt;std::string&gt; y = <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>((*i), <span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; y[0].erase(y[0].find(<span class="stringliteral">&quot;cs&quot;</span>), 2);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5">SVFUtil::getFunction</a>(y[1]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>[atoi(y[0].c_str())]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callee &amp;&amp; <span class="stringliteral">&quot;callee error&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-&gt;<a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, callee);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; cxt.push_back(csId);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
693
693
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector&lt; std::string &gt; &amp; split(const std::string &amp;s, char delim, std::vector&lt; std::string &gt; &amp;elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00042">MTAResultValidator.cpp:42</a></div></div>
694
694
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_abe087e2e8d92aa218ef282d2493193ef"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">SVF::MTAResultValidator::tcg</a></div><div class="ttdeci">ThreadCallGraph * tcg</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00135">MTAResultValidator.h:135</a></div></div>
695
695
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
696
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
696
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
697
697
  <div class="ttc" id="classSVF_1_1TCT_html_a238810a60f1010c5177e01683c8c1159"><div class="ttname"><a href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">SVF::TCT::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdoc">Get CallICFGNode given inst. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00151">TCT.h:151</a></div></div>
698
- <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00217">BasicTypes.h:217</a></div></div>
698
+ <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00216">BasicTypes.h:216</a></div></div>
699
699
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae2717c467dc7c49fab0ec93bfa4baaab"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">SVF::MTAResultValidator::csnumToInstMap</a></div><div class="ttdeci">csnumToInst csnumToInstMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00140">MTAResultValidator.h:140</a></div></div>
700
700
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00130">SVFBasicTypes.h:130</a></div></div>
701
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aa09c2b313ff1c1abcc1e5cb3f9ef46a5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5">SVF::SVFUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(std::string name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00225">SVFUtil.h:225</a></div></div>
701
702
  <div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
702
703
  <div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00059">MHP.h:59</a></div></div>
703
704
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
704
705
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
705
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00209">BasicTypes.h:209</a></div></div>
706
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4f457db1cfa0d4f94762a306c0ac3757"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVF::SVFUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(StringRef name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00225">SVFUtil.h:225</a></div></div>
706
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00208">BasicTypes.h:208</a></div></div>
707
707
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector&lt; std::string &gt; getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00068">MTAResultValidator.cpp:68</a></div></div>
708
708
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a6b3592525d5275d583c0726744d1f857"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">SVF::MTAResultValidator::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00136">MTAResultValidator.h:136</a></div></div>
709
709
  </div><!-- fragment -->
@@ -746,11 +746,11 @@ Static Private Attributes</h2></td></tr>
746
746
  <p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00059">59</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
747
747
  <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;CallInst&gt;(inst) &amp;&amp; <span class="stringliteral">&quot;getFirstIntArg: inst is not a callinst&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* x = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_num));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((arg_num &lt; cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>()) &amp;&amp; <span class="stringliteral">&quot;Does not has this argument&quot;</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>) x-&gt;getSExtValue();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
748
748
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
749
- <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00097">BasicTypes.h:97</a></div></div>
750
- <div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00222">BasicTypes.h:222</a></div></div>
751
- <div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00238">BasicTypes.h:238</a></div></div>
749
+ <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
750
+ <div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00221">BasicTypes.h:221</a></div></div>
751
+ <div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00237">BasicTypes.h:237</a></div></div>
752
752
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
753
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00209">BasicTypes.h:209</a></div></div>
753
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00208">BasicTypes.h:208</a></div></div>
754
754
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
755
755
  </div><!-- fragment -->
756
756
  </div>
@@ -931,16 +931,15 @@ Static Private Attributes</h2></td></tr>
931
931
  </div><div class="memdoc">
932
932
 
933
933
  <p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00068">68</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
934
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;CallInst&gt;(inst) &amp;&amp; <span class="stringliteral">&quot;getFirstIntArg: inst is not a callinst&quot;</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((arg_num &lt; cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>()) &amp;&amp; <span class="stringliteral">&quot;Does not has this argument&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>* gepinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_num));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* arrayinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>&gt;(gepinst-&gt;getOperand(0));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a>* cxtarray = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a>&gt;(arrayinst-&gt;getOperand(0));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (!cxtarray)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; std::vector&lt;std::string&gt; strvec;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> strvec;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> vthdcxtstring = cxtarray-&gt;getAsCString();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(vthdcxtstring.str(), <span class="charliteral">&#39;,&#39;</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a7d8006ceeea7c796af22da70c5cb93a0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a></div><div class="ttdeci">llvm::ConstantDataArray ConstantDataArray</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00056">BasicTypes.h:56</a></div></div>
934
+ <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;CallInst&gt;(inst) &amp;&amp; <span class="stringliteral">&quot;getFirstIntArg: inst is not a callinst&quot;</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((arg_num &lt; cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>()) &amp;&amp; <span class="stringliteral">&quot;Does not has this argument&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>* gepinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_num));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* arrayinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>&gt;(gepinst-&gt;getOperand(0));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a>* cxtarray = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a>&gt;(arrayinst-&gt;getOperand(0));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span> (!cxtarray)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; std::vector&lt;std::string&gt; strvec;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> strvec;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> std::string vthdcxtstring = cxtarray-&gt;getAsCString().str();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(vthdcxtstring, <span class="charliteral">&#39;,&#39;</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a7d8006ceeea7c796af22da70c5cb93a0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a7d8006ceeea7c796af22da70c5cb93a0">ConstantDataArray</a></div><div class="ttdeci">llvm::ConstantDataArray ConstantDataArray</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00056">BasicTypes.h:56</a></div></div>
935
935
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a255d310b1b573ca5c69fd715d7815d79"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
936
936
  <div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector&lt; std::string &gt; &amp; split(const std::string &amp;s, char delim, std::vector&lt; std::string &gt; &amp;elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00042">MTAResultValidator.cpp:42</a></div></div>
937
937
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
938
- <div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00222">BasicTypes.h:222</a></div></div>
939
- <div class="ttc" id="namespaceSVF_html_a88fd7387fcf16caf70abe265cdcf90b9"><div class="ttname"><a href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">SVF::StringRef</a></div><div class="ttdeci">llvm::StringRef StringRef</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
940
- <div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00238">BasicTypes.h:238</a></div></div>
938
+ <div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00221">BasicTypes.h:221</a></div></div>
939
+ <div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00237">BasicTypes.h:237</a></div></div>
941
940
  <div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
942
941
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
943
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00209">BasicTypes.h:209</a></div></div>
942
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00208">BasicTypes.h:208</a></div></div>
944
943
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
945
944
  </div><!-- fragment -->
946
945
  </div>
@@ -449,7 +449,7 @@ Additional Inherited Members</h2></td></tr>
449
449
  <div class="ttc" id="classSVF_1_1MHP_html_ab7d9fe837844197b7acdc0493a50aaa5"><div class="ttname"><a href="classSVF_1_1MHP.html#ab7d9fe837844197b7acdc0493a50aaa5">SVF::MHP::interleavingQueriesTime</a></div><div class="ttdeci">double interleavingQueriesTime</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00263">MHP.h:263</a></div></div>
450
450
  <div class="ttc" id="classSVF_1_1SVFModule_html_a5486697889c6cca4f9f426650defc255"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">SVF::SVFModule::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00147">SVFModule.h:147</a></div></div>
451
451
  <div class="ttc" id="classSVF_1_1MHP_html_aca306b97c6dcd47a8f407038436473a2"><div class="ttname"><a href="classSVF_1_1MHP.html#aca306b97c6dcd47a8f407038436473a2">SVF::MHP::interleavingTime</a></div><div class="ttdeci">double interleavingTime</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00262">MHP.h:262</a></div></div>
452
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
452
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
453
453
  <div class="ttc" id="classSVF_1_1MHP_html_a1cfec64cc65abcbc5ba32695850bfb48"><div class="ttname"><a href="classSVF_1_1MHP.html#a1cfec64cc65abcbc5ba32695850bfb48">SVF::MHP::isConnectedfromMain</a></div><div class="ttdeci">bool isConnectedfromMain(const Function *fun)</div><div class="ttdoc">Whether the function is connected from main function in thread call graph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00509">MHP.cpp:509</a></div></div>
454
454
  <div class="ttc" id="classSVF_1_1MTAStat_html_a030671ec358a93e3c2887f048dcfcce8"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a030671ec358a93e3c2887f048dcfcce8">SVF::MTAStat::FSMPTATime</a></div><div class="ttdeci">double FSMPTATime</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00045">MTAStat.h:45</a></div></div>
455
455
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
@@ -473,7 +473,7 @@ Additional Inherited Members</h2></td></tr>
473
473
  <div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00059">MHP.h:59</a></div></div>
474
474
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a9a4df49ba7ca3ad32d65e5ecf2dad707"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a9a4df49ba7ca3ad32d65e5ecf2dad707">const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
475
475
  <div class="ttc" id="CFLGrammar_8txt_html_acc7b4cf736579c4d83be2316d5a9e5f2"><div class="ttname"><a href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00008">CFLGrammar.txt:8</a></div></div>
476
- <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00150">BasicTypes.h:150</a></div></div>
476
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00149">BasicTypes.h:149</a></div></div>
477
477
  <div class="ttc" id="classSVF_1_1Options_html_aa78f442ee8d7272e98396fd86dea4993"><div class="ttname"><a href="classSVF_1_1Options.html#aa78f442ee8d7272e98396fd86dea4993">SVF::Options::AllPairMHP</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; AllPairMHP</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00186">Options.h:186</a></div></div>
478
478
  <div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00155">SVFModule.h:155</a></div></div>
479
479
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_adadee129c04b82576b4ca3c7594cdcb2"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">SVF::LockAnalysis::lockTime</a></div><div class="ttdeci">double lockTime</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00492">LockAnalysis.h:492</a></div></div>