svf-tools 1.0.459 → 1.0.460

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 (315) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +10 -10
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  6. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +12 -12
  9. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  11. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  12. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +13 -13
  14. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  18. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  20. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +17 -17
  21. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  22. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  26. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
  28. package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -0
  29. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +26 -25
  30. package/SVF-doxygen/html/html/ExeState_8h_source.html +13 -13
  31. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
  37. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  38. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
  39. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  43. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  45. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +7 -7
  49. package/SVF-doxygen/html/html/IRGraph_8h_source.html +21 -21
  50. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
  52. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
  53. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -6
  54. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  57. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +14 -13
  58. package/SVF-doxygen/html/html/LocationSet_8h_source.html +10 -10
  59. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
  60. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  61. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
  62. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  64. package/SVF-doxygen/html/html/MHP_8cpp_source.html +46 -46
  65. package/SVF-doxygen/html/html/MHP_8h.html +1 -0
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +102 -101
  67. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  69. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +11 -11
  71. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +8 -8
  72. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +9 -9
  73. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  75. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  79. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  81. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  84. package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
  85. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +18 -18
  89. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  90. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  91. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  92. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
  94. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  95. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +68 -50
  96. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +51 -50
  97. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  100. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  103. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +46 -46
  105. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +36 -36
  106. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +19 -19
  107. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  108. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  109. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  112. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  113. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
  114. package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -0
  115. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +35 -32
  116. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -1
  117. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +140 -142
  118. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  119. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  121. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -50
  124. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  125. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +1 -0
  126. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +95 -91
  127. package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -1
  128. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +141 -143
  129. package/SVF-doxygen/html/html/TCT_8cpp.html +1 -0
  130. package/SVF-doxygen/html/html/TCT_8cpp_source.html +41 -40
  131. package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
  132. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  134. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  137. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +22 -22
  138. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +4 -4
  139. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  140. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +61 -62
  141. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  144. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  145. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  146. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +4 -4
  152. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +10 -10
  153. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  160. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
  164. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  165. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  167. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +15 -15
  169. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +16 -16
  171. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +16 -16
  173. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -11
  175. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +50 -50
  176. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  178. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +20 -20
  183. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +18 -18
  185. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +40 -40
  186. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +22 -22
  188. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  191. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  192. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
  193. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +183 -183
  194. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +45 -45
  200. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +29 -29
  203. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
  205. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +10 -10
  206. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +21 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +27 -27
  215. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
  216. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  217. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +177 -177
  218. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
  219. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
  220. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +7 -7
  221. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  222. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
  223. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -91
  224. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +98 -98
  228. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +35 -35
  230. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +19 -19
  236. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +9 -9
  237. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +31 -31
  238. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +19 -19
  241. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  243. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  244. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +62 -62
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +66 -66
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +98 -106
  251. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
  252. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
  253. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
  255. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +78 -78
  256. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +224 -240
  258. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +88 -88
  259. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +7 -7
  261. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +36 -36
  264. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  268. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +19 -19
  270. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  272. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +2 -2
  273. package/SVF-doxygen/html/html/functions_func_g.html +1 -1
  274. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  275. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  276. package/SVF-doxygen/html/html/functions_g.html +1 -1
  277. package/SVF-doxygen/html/html/functions_h.html +1 -1
  278. package/SVF-doxygen/html/html/functions_i.html +1 -1
  279. package/SVF-doxygen/html/html/globals_c.html +103 -100
  280. package/SVF-doxygen/html/html/globals_s.html +9 -7
  281. package/SVF-doxygen/html/html/globals_type.html +3 -0
  282. package/SVF-doxygen/html/html/namespaceSVF.html +25 -43
  283. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +14 -14
  284. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +23 -23
  285. package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
  286. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
  287. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  288. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  289. package/SVF-doxygen/html/html/search/all_7.js +1 -1
  290. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  291. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  292. package/SVF-doxygen/html/html/search/functions_6.js +1 -1
  293. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  294. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  295. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  296. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +3 -3
  297. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  298. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +3 -3
  299. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  300. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  302. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  303. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  304. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  305. package/include/MTA/MHP.h +1 -0
  306. package/include/MemoryModel/SVFVariables.h +1 -8
  307. package/include/MemoryModel/SymbolTableInfo.h +2 -22
  308. package/include/SVF-FE/BasicTypes.h +1 -0
  309. package/include/Util/BasicTypes.h +0 -1
  310. package/lib/MTA/TCT.cpp +1 -0
  311. package/lib/MemoryModel/LocationSet.cpp +1 -0
  312. package/lib/MemoryModel/SVFVariables.cpp +10 -1
  313. package/lib/MemoryModel/SymbolTableInfo.cpp +26 -0
  314. package/lib/Util/ExeState.cpp +1 -0
  315. package/package.json +1 -1
@@ -1052,7 +1052,7 @@ Private Attributes</h2></td></tr>
1052
1052
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00142">142</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
1053
1053
  <div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Identify the protected Instructions.</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span> (InstSet::const_iterator it = <a class="code" href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">locksites</a>.begin(), ie = <a class="code" href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">locksites</a>.end(); it != ie; ++it)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *lockSite = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>&gt;(*it);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(lockSite &amp;&amp; <span class="stringliteral">&quot;Lock acquire instruction must be CallInst&quot;</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Perform forward traversal</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> forwardInsts;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> backwardInsts;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#ae682eb30763f0f52184eb36c95fc3811">InstSet</a> unlockSet;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">bool</span> forward = <a class="code" href="classSVF_1_1LockAnalysis.html#a6febb0bb12f4983cd54b3bd310ce65d2">intraForwardTraverse</a>(lockSite,unlockSet,forwardInsts);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> backward = <a class="code" href="classSVF_1_1LockAnalysis.html#a5f693c893f3701e1e025881f91193d53">intraBackwardTraverse</a>(unlockSet,backwardInsts);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(forward &amp;&amp; backward)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#ab28428444170091d2c65572263b9f40b">addIntraLock</a>(lockSite,forwardInsts);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(forward &amp;&amp; !backward)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a0cc6e4b4ab78f3c54b68fe35adb02957">addCondIntraLock</a>(lockSite,forwardInsts);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="classSVF_1_1LockAnalysis_html_a87c412a54f48e5314454cd1d44ef9b0e"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a87c412a54f48e5314454cd1d44ef9b0e">SVF::LockAnalysis::locksites</a></div><div class="ttdeci">InstSet locksites</div><div class="ttdoc">Record all visited clps. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00474">LockAnalysis.h:474</a></div></div>
1054
1054
  <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>
1055
- <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>
1055
+ <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#l00105">BasicTypes.h:105</a></div></div>
1056
1056
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a0cc6e4b4ab78f3c54b68fe35adb02957"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a0cc6e4b4ab78f3c54b68fe35adb02957">SVF::LockAnalysis::addCondIntraLock</a></div><div class="ttdeci">void addCondIntraLock(const Instruction *lockSite, const InstSet &amp;stmts)</div><div class="ttdoc">Add intra-procedural lock. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00099">LockAnalysis.h:99</a></div></div>
1057
1057
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a6febb0bb12f4983cd54b3bd310ce65d2"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a6febb0bb12f4983cd54b3bd310ce65d2">SVF::LockAnalysis::intraForwardTraverse</a></div><div class="ttdeci">bool intraForwardTraverse(const Instruction *lock, InstSet &amp;unlockset, InstSet &amp;forwardInsts)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00170">LockAnalysis.cpp:170</a></div></div>
1058
1058
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a5f693c893f3701e1e025881f91193d53"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a5f693c893f3701e1e025881f91193d53">SVF::LockAnalysis::intraBackwardTraverse</a></div><div class="ttdeci">bool intraBackwardTraverse(const InstSet &amp;unlockset, InstSet &amp;backwardInsts)</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00213">LockAnalysis.cpp:213</a></div></div>
@@ -1145,7 +1145,7 @@ Private Attributes</h2></td></tr>
1145
1145
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
1146
1146
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
1147
1147
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
1148
- <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>
1148
+ <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#l00148">BasicTypes.h:148</a></div></div>
1149
1149
  <div class="ttc" id="classSVF_1_1TCT_html_a1602d02773578bca73dcbd29b95c67d0"><div class="ttname"><a href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">SVF::TCT::getThreadCallGraph</a></div><div class="ttdeci">ThreadCallGraph * getThreadCallGraph() const</div><div class="ttdoc">Get TCG. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00167">TCT.h:167</a></div></div>
1150
1150
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
1151
1151
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
@@ -1223,7 +1223,7 @@ Private Attributes</h2></td></tr>
1223
1223
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_ad855d1de318766ac305a10bfdae4da82"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">SVF::LockAnalysis::CxtLockProc</a></div><div class="ttdeci">CxtProc CxtLockProc</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00036">LockAnalysis.h:36</a></div></div>
1224
1224
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a750e50a9022451e406c4819979edffa5"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a750e50a9022451e406c4819979edffa5">SVF::PTACallGraphEdge::directCallsBegin</a></div><div class="ttdeci">CallInstSet::const_iterator directCallsBegin() const</div><div class="ttdoc">Iterators for direct and indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00122">PTACallGraph.h:122</a></div></div>
1225
1225
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
1226
- <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>
1226
+ <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#l00148">BasicTypes.h:148</a></div></div>
1227
1227
  <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>
1228
1228
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
1229
1229
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
@@ -1254,7 +1254,7 @@ Private Attributes</h2></td></tr>
1254
1254
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_aec459af1d1624df55ffc95cd75655780"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#aec459af1d1624df55ffc95cd75655780">SVF::LockAnalysis::unlocksites</a></div><div class="ttdeci">InstSet unlocksites</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00475">LockAnalysis.h:475</a></div></div>
1255
1255
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a9db4df7968ec179e5012794c58fdee70"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">SVF::ThreadAPI::isTDAcquire</a></div><div class="ttdeci">bool isTDAcquire(const Instruction *inst) const</div><div class="ttdoc">Return true if this call acquire a lock. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00283">ThreadAPI.h:283</a></div></div>
1256
1256
  <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>
1257
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a160997c1a0fb1000445d04b89d9c1323"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a160997c1a0fb1000445d04b89d9c1323">inst_iterator</a></div><div class="ttdeci">llvm::inst_iterator inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00102">BasicTypes.h:102</a></div></div>
1257
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a160997c1a0fb1000445d04b89d9c1323"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a160997c1a0fb1000445d04b89d9c1323">inst_iterator</a></div><div class="ttdeci">llvm::inst_iterator inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00103">BasicTypes.h:103</a></div></div>
1258
1258
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
1259
1259
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_adcad8524a53baf256cd45503ec568c10"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">SVF::ThreadCallGraph::getThreadAPI</a></div><div class="ttdeci">ThreadAPI * getThreadAPI() const</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00324">ThreadCallGraph.h:324</a></div></div>
1260
1260
  <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>
@@ -1595,8 +1595,8 @@ Private Attributes</h2></td></tr>
1595
1595
  <p>Handle call. </p>
1596
1596
 
1597
1597
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00427">427</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
1598
- <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast&lt;CallInst&gt;(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallEdgeBegin(cbn), ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallEdgeEnd(cbn);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt, call, callee);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &amp;(callee-&gt;getEntryBlock().front()));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div><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>
1599
- <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>
1598
+ <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast&lt;CallInst&gt;(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallEdgeBegin(cbn), ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallEdgeEnd(cbn);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt, call, callee);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &amp;(callee-&gt;getEntryBlock().front()));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;}</div><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#l00132">BasicTypes.h:132</a></div></div>
1599
+ <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#l00105">BasicTypes.h:105</a></div></div>
1600
1600
  <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>
1601
1601
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
1602
1602
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
@@ -1606,7 +1606,7 @@ Private Attributes</h2></td></tr>
1606
1606
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
1607
1607
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1608
1608
  <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>
1609
- <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>
1609
+ <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#l00148">BasicTypes.h:148</a></div></div>
1610
1610
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
1611
1611
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, const CxtStmt &amp;src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
1612
1612
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00072">LLVMUtil.h:72</a></div></div>
@@ -1658,8 +1658,8 @@ Private Attributes</h2></td></tr>
1658
1658
 
1659
1659
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00306">306</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
1660
1660
  <div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt(clp.getContext());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a5521de9933ce74d0954a942dfceae772">isTDAcquire</a>(cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a177b10a617c275a9c2c2ed5e9b10d78a">addCxtLock</a>(cxt,cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>());</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = cgEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getFunction();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(cxt, cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>(), callee);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">CxtLockProc</a> newclp(cxt, svfcallee);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a8a6559c998c0b6f8e851d10ae2ab4171">pushToCTPWorkList</a>(newclp))</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;LockAnalysis Process CallRet old clp --&quot;</span>; clp.dump());</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;LockAnalysis Process CallRet new clp --&quot;</span>; newclp.dump());</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;}</div><div class="ttc" id="SVFBasicTypes_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
1661
- <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>
1662
- <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>
1661
+ <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#l00132">BasicTypes.h:132</a></div></div>
1662
+ <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#l00215">BasicTypes.h:215</a></div></div>
1663
1663
  <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>
1664
1664
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00093">GenericGraph.h:93</a></div></div>
1665
1665
  <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>
@@ -1667,7 +1667,7 @@ Private Attributes</h2></td></tr>
1667
1667
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1668
1668
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a177b10a617c275a9c2c2ed5e9b10d78a"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a177b10a617c275a9c2c2ed5e9b10d78a">SVF::LockAnalysis::addCxtLock</a></div><div class="ttdeci">void addCxtLock(const CallStrCxt &amp;cxt, const Instruction *inst)</div><div class="ttdoc">Context-sensitive locks. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00130">LockAnalysis.h:130</a></div></div>
1669
1669
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_ad855d1de318766ac305a10bfdae4da82"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ad855d1de318766ac305a10bfdae4da82">SVF::LockAnalysis::CxtLockProc</a></div><div class="ttdeci">CxtProc CxtLockProc</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00036">LockAnalysis.h:36</a></div></div>
1670
- <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>
1670
+ <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#l00148">BasicTypes.h:148</a></div></div>
1671
1671
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
1672
1672
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a5521de9933ce74d0954a942dfceae772"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a5521de9933ce74d0954a942dfceae772">SVF::LockAnalysis::isTDAcquire</a></div><div class="ttdeci">bool isTDAcquire(const Instruction *call)</div><div class="ttdoc">Whether it is a lock site. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00426">LockAnalysis.h:426</a></div></div>
1673
1673
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
@@ -1701,8 +1701,8 @@ Private Attributes</h2></td></tr>
1701
1701
  <p>Handle fork. </p>
1702
1702
 
1703
1703
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00405">405</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
1704
- <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast&lt;CallInst&gt;(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;hasThreadForkEdge(cbn))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getForkEdgeBegin(cbn),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &amp;(callee-&gt;getEntryBlock().front()));</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">handleIntra</a>(cts);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><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>
1705
- <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>
1704
+ <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* call = SVFUtil::cast&lt;CallInst&gt;(cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;hasThreadForkEdge(cbn))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getForkEdgeBegin(cbn),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; ecgIt = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>();</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, &amp;(callee-&gt;getEntryBlock().front()));</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">handleIntra</a>(cts);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><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#l00132">BasicTypes.h:132</a></div></div>
1705
+ <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#l00105">BasicTypes.h:105</a></div></div>
1706
1706
  <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>
1707
1707
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
1708
1708
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
@@ -1712,7 +1712,7 @@ Private Attributes</h2></td></tr>
1712
1712
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
1713
1713
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1714
1714
  <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>
1715
- <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>
1715
+ <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#l00148">BasicTypes.h:148</a></div></div>
1716
1716
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a711760ebaed0437176f4f9d314e9929c"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a711760ebaed0437176f4f9d314e9929c">SVF::LockAnalysis::handleIntra</a></div><div class="ttdeci">void handleIntra(const CxtStmt &amp;cts)</div><div class="ttdoc">Handle intra. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00500">LockAnalysis.cpp:500</a></div></div>
1717
1717
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a7d9fd3ddcadd84969b57491181983b17"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8cpp_source.html#l00516">LockAnalysis.cpp:516</a></div></div>
1718
1718
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, const CxtStmt &amp;src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
@@ -1786,7 +1786,7 @@ Private Attributes</h2></td></tr>
1786
1786
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00451">451</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
1787
1787
  <div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">getStmt</a>();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(curInst-&gt;getParent()-&gt;getParent());</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* curFunNode = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svffun);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(), eit = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it != eit; ++it)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ThreadForkEdge&gt;(edge) || SVFUtil::isa&lt;ThreadJoinEdge&gt;(edge))</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;directCallsBegin(), ecit = (edge)-&gt;directCallsEnd(); cit != ecit;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; ++cit)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*cit)-&gt;getCallSite();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a3299f1fe234e1d6b4341498575bddcbb">matchCxt</a>(newCxt, inst, curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">InstVec</a> nextInsts;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, *nit);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">for</span> (PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;indirectCallsBegin(), ecit = (edge)-&gt;indirectCallsEnd();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; cit != ecit; ++cit)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*cit)-&gt;getCallSite();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a3299f1fe234e1d6b4341498575bddcbb">matchCxt</a>(newCxt, inst, curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()))</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#aeb4b15ecc4ba1a0ca8794d304d1895cb">InstVec</a> nextInsts;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt, *nit);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">markCxtStmtFlag</a>(newCts, cts);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
1788
1788
  <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00186">GenericGraph.h:186</a></div></div>
1789
- <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>
1789
+ <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#l00132">BasicTypes.h:132</a></div></div>
1790
1790
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2f9959fa23ab4bdc65ca36fbda8c1b70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">SVF::SVFUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector&lt; const Instruction *&gt; &amp;instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00216">LLVMUtil.cpp:216</a></div></div>
1791
1791
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
1792
1792
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a5e8c4b10eb5c3240d2e21a020ed834a6"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const Instruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
@@ -1801,7 +1801,7 @@ Private Attributes</h2></td></tr>
1801
1801
  <div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
1802
1802
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
1803
1803
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1804
- <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>
1804
+ <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#l00148">BasicTypes.h:148</a></div></div>
1805
1805
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
1806
1806
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a375cb175ec0068bacaa64cf40a49d485"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a375cb175ec0068bacaa64cf40a49d485">SVF::LockAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, const CxtStmt &amp;src)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00337">LockAnalysis.h:337</a></div></div>
1807
1807
  </div><!-- fragment -->
@@ -2903,7 +2903,7 @@ Private Attributes</h2></td></tr>
2903
2903
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00535">535</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
2904
2904
  <div class="fragment"><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;{</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = call-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(callee);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcaller = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(caller);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, svfcallee);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="comment">// /// handle calling context for candidate functions only</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="comment">// if (isLockCandidateFun(caller) == false)</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="comment">// return true;</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span> (cxt.empty())</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">inSameCallGraphSCC</a>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallGraphNode(svfcaller), <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallGraphNode(svfcallee)) == <span class="keyword">false</span>)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">if</span> (cxt.back() == csId)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; cxt.pop_back();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>, <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">dumpCxt</a>(cxt));</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</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>
2905
2905
  <div class="ttc" id="SVFBasicTypes_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
2906
- <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>
2906
+ <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#l00132">BasicTypes.h:132</a></div></div>
2907
2907
  <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>
2908
2908
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
2909
2909
  <div class="ttc" id="classSVF_1_1TCT_html_a21bcc063a406eb8650df42cf5ced68c9"><div class="ttname"><a href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">SVF::TCT::getSVFFun</a></div><div class="ttdeci">const SVFFunction * getSVFFun(const Function *fun) const</div><div class="ttdoc">Get SVFFuntion given Function. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00156">TCT.h:156</a></div></div>
@@ -2912,7 +2912,7 @@ Private Attributes</h2></td></tr>
2912
2912
  <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>
2913
2913
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
2914
2914
  <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>
2915
- <div class="ttc" id="classSVF_1_1TCT_html_aa86c4422e17cf00408444f18687d555b"><div class="ttname"><a href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">SVF::TCT::dumpCxt</a></div><div class="ttdeci">void dumpCxt(CallStrCxt &amp;cxt)</div><div class="ttdoc">Dump calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00527">TCT.cpp:527</a></div></div>
2915
+ <div class="ttc" id="classSVF_1_1TCT_html_aa86c4422e17cf00408444f18687d555b"><div class="ttname"><a href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">SVF::TCT::dumpCxt</a></div><div class="ttdeci">void dumpCxt(CallStrCxt &amp;cxt)</div><div class="ttdoc">Dump calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00528">TCT.cpp:528</a></div></div>
2916
2916
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
2917
2917
  </div><!-- fragment -->
2918
2918
  </div>
@@ -3047,7 +3047,7 @@ Private Attributes</h2></td></tr>
3047
3047
  <p class="definition">Definition at line <a class="el" href="LockAnalysis_8cpp_source.html#l00516">516</a> of file <a class="el" href="LockAnalysis_8cpp_source.html">LockAnalysis.cpp</a>.</p>
3048
3048
  <div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* caller = call-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(callee);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcaller = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">getSVFFun</a>(caller);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(call);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, svfcallee);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment">// /// handle calling context for candidate functions only</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment">// if (isLockCandidateFun(caller) == false)</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment">// return;</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a95cd490d37f8831edc6910f7ecdf413e">inSameCallGraphSCC</a>(<a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallGraphNode(svfcaller), <a class="code" href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">getTCG</a>()-&gt;getCallGraphNode(svfcallee)) == <span class="keyword">false</span>)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">pushCxt</a>(cxt,csId);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>, <a class="code" href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">dumpCxt</a>(cxt));</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</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>
3049
3049
  <div class="ttc" id="SVFBasicTypes_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFBasicTypes_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00174">SVFBasicTypes.h:174</a></div></div>
3050
- <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>
3050
+ <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#l00132">BasicTypes.h:132</a></div></div>
3051
3051
  <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>
3052
3052
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a2c4a69b0f2381142c172b3043943c79d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a2c4a69b0f2381142c172b3043943c79d">SVF::LockAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdoc">TCT. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00447">LockAnalysis.h:447</a></div></div>
3053
3053
  <div class="ttc" id="classSVF_1_1TCT_html_a21bcc063a406eb8650df42cf5ced68c9"><div class="ttname"><a href="classSVF_1_1TCT.html#a21bcc063a406eb8650df42cf5ced68c9">SVF::TCT::getSVFFun</a></div><div class="ttdeci">const SVFFunction * getSVFFun(const Function *fun) const</div><div class="ttdoc">Get SVFFuntion given Function. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00156">TCT.h:156</a></div></div>
@@ -3056,8 +3056,8 @@ Private Attributes</h2></td></tr>
3056
3056
  <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>
3057
3057
  <div class="ttc" id="classSVF_1_1LockAnalysis_html_a96a6cfddc8f7115294e8ad49a097b938"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a96a6cfddc8f7115294e8ad49a097b938">SVF::LockAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00441">LockAnalysis.h:441</a></div></div>
3058
3058
  <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>
3059
- <div class="ttc" id="classSVF_1_1TCT_html_aa86c4422e17cf00408444f18687d555b"><div class="ttname"><a href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">SVF::TCT::dumpCxt</a></div><div class="ttdeci">void dumpCxt(CallStrCxt &amp;cxt)</div><div class="ttdoc">Dump calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00527">TCT.cpp:527</a></div></div>
3060
- <div class="ttc" id="classSVF_1_1TCT_html_afc6d7a91cfc98561bcce13425964a39e"><div class="ttname"><a href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">SVF::TCT::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00474">TCT.cpp:474</a></div></div>
3059
+ <div class="ttc" id="classSVF_1_1TCT_html_aa86c4422e17cf00408444f18687d555b"><div class="ttname"><a href="classSVF_1_1TCT.html#aa86c4422e17cf00408444f18687d555b">SVF::TCT::dumpCxt</a></div><div class="ttdeci">void dumpCxt(CallStrCxt &amp;cxt)</div><div class="ttdoc">Dump calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00528">TCT.cpp:528</a></div></div>
3060
+ <div class="ttc" id="classSVF_1_1TCT_html_afc6d7a91cfc98561bcce13425964a39e"><div class="ttname"><a href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">SVF::TCT::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const Instruction *call, const Function *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00475">TCT.cpp:475</a></div></div>
3061
3061
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
3062
3062
  </div><!-- fragment -->
3063
3063
  </div>
@@ -308,9 +308,9 @@ Static Private Attributes</h2></td></tr>
308
308
  <p class="definition">Definition at line <a class="el" href="LockResultValidator_8cpp_source.html#l00072">72</a> of file <a class="el" href="LockResultValidator_8cpp_source.html">LockResultValidator.cpp</a>.</p>
309
309
  <div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</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#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1LockResultValidator.html#a7b8a2bf9962bd57e103039ead85821d2">getModule</a>()-&gt;llvmFunBegin(); it != <a class="code" href="classSVF_1_1LockResultValidator.html#a7b8a2bf9962bd57e103039ead85821d2">getModule</a>()-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++)</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="keyword">const</span> std::string fName = (*it)-&gt;getName().str();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1LockResultValidator.html#adb743de97f26167b39f6a348a63db371">LOCK</a>) != std::string::npos)</div><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; F = (*it);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">break</span>;</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; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (!F)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span>(Value::const_use_iterator it = F-&gt;use_begin(), ie = F-&gt;use_end(); it!=ie; it++)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a9c01c67684e99545d8e0403321594977">Use</a> *u = &amp;*it;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u-&gt;getUser();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&gt;(user);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html#afec6058866fe334646db78227fb4d6a6">CxtLockSetStr</a> y = <a class="code" href="classSVF_1_1LockResultValidator.html#a1b1b841451fe51cb58417e864a28cbfc">getStringArg</a>(inst, 0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* memInst = <a class="code" href="classSVF_1_1LockResultValidator.html#a0be1cdab3c36835044e3b26d5d8402e6">getPreviousMemoryAccessInst</a>(inst);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html#a841c1dfb065999215b5f415e403f7a2a">instToCxtLockSet</a>[memInst] = y;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a>* store = SVFUtil::dyn_cast&lt;StoreInst&gt; (memInst))</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">if</span>(<span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#ab58e9b290ff1defcedad101c3da8d8fd">BinaryOperator</a>* bop = SVFUtil::dyn_cast&lt;BinaryOperator&gt; (store-&gt;getValueOperand()))</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = bop-&gt;getOperand(0);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* prevInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt; (v);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1LockResultValidator.html#a841c1dfb065999215b5f415e403f7a2a">instToCxtLockSet</a>[prevInst] = y;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="ttc" id="classSVF_1_1LockResultValidator_html_adb743de97f26167b39f6a348a63db371"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#adb743de97f26167b39f6a348a63db371">SVF::LockResultValidator::LOCK</a></div><div class="ttdeci">static constexpr char const * LOCK</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00113">LockResultValidator.h:113</a></div></div>
310
310
  <div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
311
- <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>
311
+ <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#l00106">BasicTypes.h:106</a></div></div>
312
312
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_a7b8a2bf9962bd57e103039ead85821d2"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#a7b8a2bf9962bd57e103039ead85821d2">SVF::LockResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00035">LockResultValidator.h:35</a></div></div>
313
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_ab58e9b290ff1defcedad101c3da8d8fd"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#ab58e9b290ff1defcedad101c3da8d8fd">BinaryOperator</a></div><div class="ttdeci">llvm::BinaryOperator BinaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
313
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_ab58e9b290ff1defcedad101c3da8d8fd"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#ab58e9b290ff1defcedad101c3da8d8fd">BinaryOperator</a></div><div class="ttdeci">llvm::BinaryOperator BinaryOperator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00089">BasicTypes.h:89</a></div></div>
314
314
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_a0be1cdab3c36835044e3b26d5d8402e6"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#a0be1cdab3c36835044e3b26d5d8402e6">SVF::LockResultValidator::getPreviousMemoryAccessInst</a></div><div class="ttdeci">const Instruction * getPreviousMemoryAccessInst(const Instruction *I)</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00045">LockResultValidator.h:45</a></div></div>
315
315
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_afec6058866fe334646db78227fb4d6a6"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#afec6058866fe334646db78227fb4d6a6">SVF::LockResultValidator::CxtLockSetStr</a></div><div class="ttdeci">Set&lt; std::string &gt; CxtLockSetStr</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8h_source.html#l00021">LockResultValidator.h:21</a></div></div>
316
316
  <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>
@@ -319,7 +319,7 @@ Static Private Attributes</h2></td></tr>
319
319
  <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>
320
320
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a9c01c67684e99545d8e0403321594977"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a9c01c67684e99545d8e0403321594977">Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00028">BasicTypes.h:28</a></div></div>
321
321
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_a1b1b841451fe51cb58417e864a28cbfc"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#a1b1b841451fe51cb58417e864a28cbfc">SVF::LockResultValidator::getStringArg</a></div><div class="ttdeci">Set&lt; std::string &gt; getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00016">LockResultValidator.cpp:16</a></div></div>
322
- <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>
322
+ <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#l00107">BasicTypes.h:107</a></div></div>
323
323
  <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>
324
324
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
325
325
  </div><!-- fragment -->
@@ -502,15 +502,15 @@ Static Private Attributes</h2></td></tr>
502
502
 
503
503
  <p class="definition">Definition at line <a class="el" href="LockResultValidator_8cpp_source.html#l00016">16</a> of file <a class="el" href="LockResultValidator_8cpp_source.html">LockResultValidator.cpp</a>.</p>
504
504
  <div class="fragment"><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</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="l00021"></a><span class="lineno"> 21</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="l00022"></a><span class="lineno"> 22</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="l00023"></a><span class="lineno"> 23</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="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span> (!cxtarray)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;std::string&gt;</a> strvec;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">return</span> strvec;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">const</span> std::string vthdcxtstring = cxtarray-&gt;getAsCString().str();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LockResultValidator.html#ab8a6935e1ea6f99d60ead862a7b1782f">split</a>(vthdcxtstring, <span class="charliteral">&#39;,&#39;</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</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>
505
- <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>
505
+ <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#l00072">BasicTypes.h:72</a></div></div>
506
506
  <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>
507
507
  <div class="ttc" id="classSVF_1_1LockResultValidator_html_ab8a6935e1ea6f99d60ead862a7b1782f"><div class="ttname"><a href="classSVF_1_1LockResultValidator.html#ab8a6935e1ea6f99d60ead862a7b1782f">SVF::LockResultValidator::split</a></div><div class="ttdeci">Set&lt; std::string &gt; &amp; split(const std::string &amp;s, char delim, Set&lt; std::string &gt; &amp;elems)</div><div class="ttdef"><b>Definition:</b> <a href="LockResultValidator_8cpp_source.html#l00033">LockResultValidator.cpp:33</a></div></div>
508
- <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>
508
+ <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#l00220">BasicTypes.h:220</a></div></div>
509
509
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
510
- <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>
511
- <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>
510
+ <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#l00236">BasicTypes.h:236</a></div></div>
511
+ <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#l00094">BasicTypes.h:94</a></div></div>
512
512
  <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>
513
- <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>
513
+ <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#l00207">BasicTypes.h:207</a></div></div>
514
514
  <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>
515
515
  </div><!-- fragment -->
516
516
  </div>