svf-tools 1.0.462 → 1.0.463

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 (320) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
  9. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +16 -16
  11. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  13. package/SVF-doxygen/html/html/CHG_8cpp_source.html +9 -9
  14. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  15. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +17 -17
  16. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
  24. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +23 -23
  25. package/SVF-doxygen/html/html/DCHG_8h_source.html +11 -11
  26. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  27. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +5 -5
  31. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +7 -7
  32. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  34. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +7 -6
  39. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +50 -49
  40. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +28 -28
  41. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  45. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
  48. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  50. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +6 -6
  53. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +5 -5
  54. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +16 -16
  55. package/SVF-doxygen/html/html/LLVMUtil_8h.html +1 -1
  56. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +12 -12
  57. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  59. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  60. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
  61. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
  63. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  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 +2 -2
  70. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -12
  71. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +4 -4
  72. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  73. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  74. package/SVF-doxygen/html/html/MTA_8h_source.html +4 -4
  75. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  76. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
  78. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  79. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  80. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  81. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
  83. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  85. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +6 -6
  87. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +4 -4
  88. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +10 -10
  89. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  90. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  91. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +157 -67
  92. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +72 -67
  93. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  95. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  96. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  97. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +43 -43
  101. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +40 -40
  102. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/SVFModule_8h_source.html +3 -3
  104. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  105. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +7 -7
  106. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  107. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  109. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  110. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  111. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  112. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  113. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +28 -28
  114. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +2 -2
  115. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +7 -7
  116. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/TCT_8cpp_source.html +11 -11
  118. package/SVF-doxygen/html/html/TCT_8h_source.html +8 -8
  119. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  120. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  121. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  122. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  123. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  124. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp.html +3 -2
  125. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +43 -42
  126. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +33 -33
  127. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -12
  128. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +71 -76
  129. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  131. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  132. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  133. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +2 -2
  134. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  135. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  142. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +3 -3
  151. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +26 -26
  152. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  153. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  160. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
  169. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +152 -152
  175. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +12 -12
  176. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
  182. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  184. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +115 -115
  186. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +11 -11
  187. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  192. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  193. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
  200. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +11 -11
  216. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  217. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +4 -4
  220. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +17 -17
  221. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +10 -10
  222. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +15 -15
  223. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  224. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -5
  227. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +7 -7
  228. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +18 -18
  229. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  233. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  238. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +10 -10
  244. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +14 -14
  246. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
  248. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  255. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  256. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +55 -55
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  261. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  263. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +32 -32
  269. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +9 -9
  270. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +18 -18
  271. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  280. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +125 -125
  281. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  283. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  284. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  289. package/SVF-doxygen/html/html/globals_d.html +12 -0
  290. package/SVF-doxygen/html/html/globals_g.html +5 -2
  291. package/SVF-doxygen/html/html/globals_s.html +3 -3
  292. package/SVF-doxygen/html/html/globals_type.html +15 -0
  293. package/SVF-doxygen/html/html/namespaceSVF.html +34 -130
  294. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +42 -42
  295. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +29 -29
  296. package/SVF-doxygen/html/html/namespacemembers_d.html +2 -14
  297. package/SVF-doxygen/html/html/namespacemembers_g.html +2 -5
  298. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -15
  299. package/SVF-doxygen/html/html/search/all_13.js +1 -1
  300. package/SVF-doxygen/html/html/search/all_4.js +4 -4
  301. package/SVF-doxygen/html/html/search/all_7.js +1 -1
  302. package/SVF-doxygen/html/html/search/typedefs_3.js +4 -4
  303. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  304. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  305. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  306. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  307. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  308. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  309. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  310. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  311. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  312. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  313. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  314. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  315. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  316. package/include/SVF-FE/BasicTypes.h +6 -1
  317. package/include/Util/BasicTypes.h +1 -9
  318. package/lib/WPA/FlowSensitiveTBHC.cpp +1 -0
  319. package/lib/WPA/TypeBasedHeapCloning.cpp +1 -0
  320. package/package.json +1 -1
@@ -595,7 +595,7 @@ Additional Inherited Members</h2></td></tr>
595
595
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00238">238</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
596
596
  <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; std::string str;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;IntraPHIVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;PAGNode: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PHIVFGNode.html#a513b2636967a86902f4243dc0d2e0e3f">res</a>-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; = PHI(&quot;</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">for</span>(PHIVFGNode::OPVers::const_iterator it = <a class="code" href="classSVF_1_1PHIVFGNode.html#a2e00f6d582aa4ac9aa116cc6d5c79369">opVerBegin</a>(), eit = <a class="code" href="classSVF_1_1PHIVFGNode.html#add18c60773871744123d12a037e78e20">opVerEnd</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; it != eit; it++)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; rawstr &lt;&lt; it-&gt;second-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)]\t&quot;</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html#a513b2636967a86902f4243dc0d2e0e3f">res</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1PHIVFGNode.html#a513b2636967a86902f4243dc0d2e0e3f">res</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>());</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="ttc" id="classSVF_1_1PHIVFGNode_html_a2e00f6d582aa4ac9aa116cc6d5c79369"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#a2e00f6d582aa4ac9aa116cc6d5c79369">SVF::PHIVFGNode::opVerBegin</a></div><div class="ttdeci">OPVers::const_iterator opVerBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00674">VFGNode.h:674</a></div></div>
597
597
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html_a513b2636967a86902f4243dc0d2e0e3f"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html#a513b2636967a86902f4243dc0d2e0e3f">SVF::PHIVFGNode::res</a></div><div class="ttdeci">const PAGNode * res</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00641">VFGNode.h:641</a></div></div>
598
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
598
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
599
599
  <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00111">SVFVariables.h:111</a></div></div>
600
600
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00392">SVFUtil.cpp:392</a></div></div>
601
601
  <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00095">SVFVariables.h:95</a></div></div>
@@ -136,7 +136,7 @@ Private Attributes</h2></td></tr>
136
136
  </div><div class="memdoc">
137
137
 
138
138
  <p class="definition">Definition at line <a class="el" href="DataFlowUtil_8h_source.html#l00165">165</a> of file <a class="el" href="DataFlowUtil_8h_source.html">DataFlowUtil.h</a>.</p>
139
- <div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; :</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">DominanceFrontierBase</a>(), <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
139
+ <div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; :</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">DominanceFrontierBase</a>(), <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aa50321ef8e3c9ee5e0b04f95a5a72e24"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">SVF::IteratedDominanceFrontier::DF</a></div><div class="ttdeci">const DominanceFrontier * DF</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00158">DataFlowUtil.h:158</a></div></div>
141
141
  </div><!-- fragment -->
142
142
  </div>
@@ -206,7 +206,7 @@ Private Attributes</h2></td></tr>
206
206
  <p class="definition">Definition at line <a class="el" href="DataFlowUtil_8cpp_source.html#l00126">126</a> of file <a class="el" href="DataFlowUtil_8cpp_source.html">DataFlowUtil.cpp</a>.</p>
207
207
  <div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; DomSetType worklist;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">DominanceFrontierBase&lt;BasicBlock, false&gt;::const_iterator</a> it = <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>.find(bb);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>.end());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; worklist.insert(it-&gt;second.begin(), it-&gt;second.end());</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *item = *worklist.begin();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; worklist.erase(worklist.begin());</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (Frontiers[bb].find(item) == Frontiers[bb].end())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; Frontiers[bb].insert(item);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; const_iterator parent = <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>.find(item);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(parent != <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>.end());</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; worklist.insert(parent-&gt;second.begin(), parent-&gt;second.end());</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
208
208
  <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>
209
- <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
209
+ <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
210
210
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aa50321ef8e3c9ee5e0b04f95a5a72e24"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">SVF::IteratedDominanceFrontier::DF</a></div><div class="ttdeci">const DominanceFrontier * DF</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00158">DataFlowUtil.h:158</a></div></div>
211
211
  </div><!-- fragment -->
212
212
  </div>
@@ -322,7 +322,7 @@ Static Private Attributes</h2></td></tr>
322
322
  </div><div class="memdoc">
323
323
 
324
324
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00230">230</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
325
- <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; std::vector&lt;Function *&gt; init_funcs;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func: mod)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(func.getName().startswith(<a class="code" href="LLVMModule_8cpp.html#a264d24658581f23cb7e764c7a21e9b26">SVF_GLOBAL_SUB_I_XXX</a>))</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; init_funcs.push_back(&amp;func);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">&quot; already defined&quot;</span>);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(orgMain &amp;&amp; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() &gt; 0 &amp;&amp; init_funcs.size() &gt; 0)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mainMod &amp;&amp; <span class="stringliteral">&quot;Module with main function not found.&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; M = *mainMod;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; );</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(svfmainFn.getCallee());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(M.getOrInsertFunction(</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; ));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">&quot;entry&quot;</span>, svfmain);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="SVF-FE_2BasicTypes_8h.html#a71269a3564eca6be7bc0efb5202275f0">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// emit &quot;call void @_GLOBAL__sub_I_XXX()&quot;</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; init: init_funcs)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; init-&gt;getName(),</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; );</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// main() should be called after all _GLOBAL__sub_I_XXX functions.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cnt &lt;= 3 &amp;&amp; <span class="stringliteral">&quot;Too many arguments for main()&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
325
+ <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; std::vector&lt;Function *&gt; init_funcs;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func: mod)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(func.getName().startswith(<a class="code" href="LLVMModule_8cpp.html#a264d24658581f23cb7e764c7a21e9b26">SVF_GLOBAL_SUB_I_XXX</a>))</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; init_funcs.push_back(&amp;func);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">&quot; already defined&quot;</span>);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(orgMain &amp;&amp; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() &gt; 0 &amp;&amp; init_funcs.size() &gt; 0)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mainMod &amp;&amp; <span class="stringliteral">&quot;Module with main function not found.&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; M = *mainMod;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; );</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(svfmainFn.getCallee());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(M.getOrInsertFunction(</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; ));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">&quot;entry&quot;</span>, svfmain);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="SVF-FE_2BasicTypes_8h.html#a71269a3564eca6be7bc0efb5202275f0">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// emit &quot;call void @_GLOBAL__sub_I_XXX()&quot;</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; init: init_funcs)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; init-&gt;getName(),</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; );</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// main() should be called after all _GLOBAL__sub_I_XXX functions.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cnt &lt;= 3 &amp;&amp; <span class="stringliteral">&quot;Too many arguments for main()&quot;</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
326
326
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
327
327
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
328
328
  <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>
@@ -330,7 +330,7 @@ Static Private Attributes</h2></td></tr>
330
330
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00095">LLVMModule.h:95</a></div></div>
331
331
  <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>
332
332
  <div class="ttc" id="LLVMModule_8cpp_html_a10ab7c7da3a458495d8528b9e90d714b"><div class="ttname"><a href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a></div><div class="ttdeci">#define SVF_MAIN_FUNC_NAME</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00055">LLVMModule.cpp:55</a></div></div>
333
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a71269a3564eca6be7bc0efb5202275f0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a71269a3564eca6be7bc0efb5202275f0">IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00030">BasicTypes.h:30</a></div></div>
333
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a71269a3564eca6be7bc0efb5202275f0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a71269a3564eca6be7bc0efb5202275f0">IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00031">BasicTypes.h:31</a></div></div>
334
334
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00055">LLVMModule.h:55</a></div></div>
335
335
  <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>
336
336
  <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>
@@ -364,7 +364,7 @@ Static Private Attributes</h2></td></tr>
364
364
  <p>Returns true if all LLVM modules are compiled with ctir. </p>
365
365
 
366
366
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8h_source.html#l00212">212</a> of file <a class="el" href="LLVMModule_8h_source.html">LLVMModule.h</a>.</p>
367
- <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Iterate over all modules. If a single module does not have the correct ctir module flag,</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// short-circuit and return false.</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; llvm::Metadata *ctirModuleFlag = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">llvmModuleSet</a>-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i)-&gt;getModuleFlag(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (ctirModuleFlag == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; llvm::ConstantAsMetadata *flagConstMetadata = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;llvm::ConstantAsMetadata&gt;(ctirModuleFlag);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *flagConstInt = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(flagConstMetadata-&gt;getValue());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (flagConstInt-&gt;getZExtValue() != <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3">cppUtil::ctir::moduleFlagValue</a>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
367
+ <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Iterate over all modules. If a single module does not have the correct ctir module flag,</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// short-circuit and return false.</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; llvm::Metadata *ctirModuleFlag = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">llvmModuleSet</a>-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i)-&gt;getModuleFlag(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (ctirModuleFlag == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; llvm::ConstantAsMetadata *flagConstMetadata = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;llvm::ConstantAsMetadata&gt;(ctirModuleFlag);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *flagConstInt = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(flagConstMetadata-&gt;getValue());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (flagConstInt-&gt;getZExtValue() != <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3">cppUtil::ctir::moduleFlagValue</a>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00091">BasicTypes.h:91</a></div></div>
368
368
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00095">LLVMModule.h:95</a></div></div>
369
369
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00084">SVFBasicTypes.h:84</a></div></div>
370
370
  <div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_a0cd5347bc8043d4306e66a4a96005ace"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">SVF::cppUtil::ctir::derefMDName</a></div><div class="ttdeci">const std::string derefMDName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00113">CPPUtil.h:113</a></div></div>
@@ -471,7 +471,7 @@ Static Private Attributes</h2></td></tr>
471
471
  </div><div class="memdoc">
472
472
 
473
473
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00408">408</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
474
- <div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;{</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;GlobalVariable*&gt;</a>&gt; NameToGlobalsMapTy;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVFModule::global_iterator</a> it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a4dc32c583d29d74d052eaa5665b0b70e">global_begin</a>(),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a8a34164634d6ad9a7b76175907c8c44b">global_end</a>(); it != eit; ++it)</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; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = *it;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (global-&gt;hasPrivateLinkage())</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">string</span> name = global-&gt;getName().str();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; NameToGlobalsMapTy::iterator mit = nameToGlobalsMap.find(name);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">if</span> (mit == nameToGlobalsMap.end())</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; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> globals;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; globals.insert(global);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; nameToGlobalsMap[name] = globals;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = mit-&gt;second;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; globals.insert(global);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">for</span> (NameToGlobalsMapTy::iterator it = nameToGlobalsMap.begin(),</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; eit = nameToGlobalsMap.end(); it != eit; ++it)</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = it-&gt;second;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *rep = *(globals.begin());</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> repit = globals.begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">while</span> (repit != globals.end())</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *repit;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (cur-&gt;hasInitializer())</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; rep = cur;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">break</span>;</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; repit++;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> sit = globals.begin(),</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; seit = globals.end(); sit != seit; ++sit)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *sit;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
474
+ <div class="fragment"><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;{</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;GlobalVariable*&gt;</a>&gt; NameToGlobalsMapTy;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVFModule::global_iterator</a> it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a4dc32c583d29d74d052eaa5665b0b70e">global_begin</a>(),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a8a34164634d6ad9a7b76175907c8c44b">global_end</a>(); it != eit; ++it)</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; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = *it;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (global-&gt;hasPrivateLinkage())</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">string</span> name = global-&gt;getName().str();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; NameToGlobalsMapTy::iterator mit = nameToGlobalsMap.find(name);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">if</span> (mit == nameToGlobalsMap.end())</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; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> globals;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; globals.insert(global);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; nameToGlobalsMap[name] = globals;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = mit-&gt;second;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; globals.insert(global);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">for</span> (NameToGlobalsMapTy::iterator it = nameToGlobalsMap.begin(),</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; eit = nameToGlobalsMap.end(); it != eit; ++it)</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = it-&gt;second;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *rep = *(globals.begin());</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> repit = globals.begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">while</span> (repit != globals.end())</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *repit;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (cur-&gt;hasInitializer())</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; rep = cur;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">break</span>;</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; repit++;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> sit = globals.begin(),</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; seit = globals.end(); sit != seit; ++sit)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *sit;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
475
475
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
476
476
  <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>
477
477
  <div class="ttc" id="classSVF_1_1SVFModule_html_a4cf1ca2e9f045a0520b0a8a6cd5993f2"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVF::SVFModule::global_iterator</a></div><div class="ttdeci">GlobalSetType::iterator global_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00055">SVFModule.h:55</a></div></div>
@@ -549,8 +549,8 @@ Static Private Attributes</h2></td></tr>
549
549
  </div><div class="memdoc">
550
550
 
551
551
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00459">459</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
552
- <div class="fragment"><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; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; std::string moduleName = mod.getName().str();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::string OutputFilename;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; OutputFilename = moduleName + suffix;</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; std::error_code EC;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; WriteBitcodeToFile(mod, OS);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#endif</span></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; OS.flush();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
553
- <div class="ttc" id="namespaceSVF_html_a1c7c7ac12791c0ae386283c0a4f127ba"><div class="ttname"><a href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">SVF::raw_fd_ostream</a></div><div class="ttdeci">llvm::raw_fd_ostream raw_fd_ostream</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00081">BasicTypes.h:81</a></div></div>
552
+ <div class="fragment"><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; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; std::string moduleName = mod.getName().str();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::string OutputFilename;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; OutputFilename = moduleName + suffix;</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; std::error_code EC;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; WriteBitcodeToFile(mod, OS);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#endif</span></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; OS.flush();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
553
+ <div class="ttc" id="namespaceSVF_html_a1c7c7ac12791c0ae386283c0a4f127ba"><div class="ttname"><a href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">SVF::raw_fd_ostream</a></div><div class="ttdeci">llvm::raw_fd_ostream raw_fd_ostream</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
554
554
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00055">LLVMModule.h:55</a></div></div>
555
555
  </div><!-- fragment -->
556
556
  </div>
@@ -1158,10 +1158,10 @@ Static Private Attributes</h2></td></tr>
1158
1158
 
1159
1159
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00197">197</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1160
1160
  <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a868fa5069b01b7a7dfbc5fb99cb76385">Options::SVFMain</a>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">addSVFMain</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>&amp; mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (Module::iterator it = mod.begin(), eit = mod.end();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *func = &amp;*it;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#ae5512e574414dc259daaacaecf8cdf13">addFunctionSet</a>(func);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; eit = mod.global_end(); it != eit; ++it)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &amp;*it;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a9aabe6d24bea26f3b5c7cab5a0fc3053">addGlobalSet</a>(global);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">for</span> (Module::alias_iterator it = mod.alias_begin(),</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; eit = mod.alias_end(); it != eit; ++it)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">GlobalAlias</a> *alias = &amp;*it;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a9b28f106dfedb917c6c757d5d0a6771e">addAliasSet</a>(alias);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_a9b28f106dfedb917c6c757d5d0a6771e"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a9b28f106dfedb917c6c757d5d0a6771e">SVF::SVFModule::addAliasSet</a></div><div class="ttdeci">void addAliasSet(GlobalAlias *alias)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00115">SVFModule.h:115</a></div></div>
1161
- <div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
1162
- <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
1161
+ <div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
1162
+ <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
1163
1163
  <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>
1164
- <div class="ttc" id="namespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00098">BasicTypes.h:98</a></div></div>
1164
+ <div class="ttc" id="namespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
1165
1165
  <div class="ttc" id="classSVF_1_1Options_html_a868fa5069b01b7a7dfbc5fb99cb76385"><div class="ttname"><a href="classSVF_1_1Options.html#a868fa5069b01b7a7dfbc5fb99cb76385">SVF::Options::SVFMain</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SVFMain</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00209">Options.h:209</a></div></div>
1166
1166
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00052">LLVMModule.h:52</a></div></div>
1167
1167
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00230">LLVMModule.cpp:230</a></div></div>
@@ -1198,7 +1198,7 @@ Static Private Attributes</h2></td></tr>
1198
1198
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00148">148</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1199
1199
  <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</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">// We read SVFIR from LLVM IR</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue().<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">empty</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(moduleNameVec.empty())</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;no LLVM bc file is found!\n&quot;</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(0);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">//assert(!moduleNameVec.empty() &amp;&amp; &quot;no LLVM bc file is found!&quot;);</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// We read SVFIR from a user-defined txt instead of parsing SVFIR from LLVM IR</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html#ac630e9f18a239ac6b3b88d05e64140c5">SVFModule::setPagFromTXT</a>(<a class="code" href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">Options::Graphtxt</a>.getValue());</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; <span class="comment">//</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// To avoid the following type bugs (t1 != t3) when parsing multiple modules,</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// We should use only one LLVMContext object for multiple modules in the same thread.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// No such problem if only one module is processed by SVF.</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// LLVMContext ctxa,ctxb;</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// IntegerType * t1 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// IntegerType * t2 = IntegerType::get(ctxa,32);</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// assert(t1 == t2);</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// IntegerType * t3 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// IntegerType * t4 = IntegerType::get(ctxb,32);</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// assert(t3 == t4);</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// assert(t1 != t3);</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// ------------------------------------------------------------------</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a> = std::make_unique&lt;LLVMContext&gt;();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> std::string&amp; moduleName : moduleNameVec)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="SVF-FE_2BasicTypes_8h.html#a312d4d865f87a9bff58ce66b087c13d0">SMDiagnostic</a> Err;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; std::unique_ptr&lt;Module&gt; mod = parseIRFile(moduleName, Err, *<a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;load module: &quot;</span> &lt;&lt; moduleName &lt;&lt; <span class="stringliteral">&quot;failed!!\n\n&quot;</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; Err.print(<span class="stringliteral">&quot;SVFModuleLoader&quot;</span>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">llvm::errs</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">owned_modules</a>.emplace_back(std::move(mod));</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_aa5c4bc8e55a056adcd7a6f8946ad5f38"><div class="ttname"><a href="classSVF_1_1Options.html#aa5c4bc8e55a056adcd7a6f8946ad5f38">SVF::Options::Graphtxt</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; Graphtxt</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00208">Options.h:208</a></div></div>
1200
1200
  <div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
1201
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a312d4d865f87a9bff58ce66b087c13d0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a312d4d865f87a9bff58ce66b087c13d0">SMDiagnostic</a></div><div class="ttdeci">llvm::SMDiagnostic SMDiagnostic</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00038">BasicTypes.h:38</a></div></div>
1201
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a312d4d865f87a9bff58ce66b087c13d0"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a312d4d865f87a9bff58ce66b087c13d0">SMDiagnostic</a></div><div class="ttdeci">llvm::SMDiagnostic SMDiagnostic</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00039">BasicTypes.h:39</a></div></div>
1202
1202
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
1203
1203
  <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>
1204
1204
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ad06a92bf8bc556de742e0ffdf79ffafe"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">SVF::LLVMModuleSet::cxts</a></div><div class="ttdeci">std::unique_ptr&lt; LLVMContext &gt; cxts</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00053">LLVMModule.h:53</a></div></div>
@@ -1239,7 +1239,7 @@ Static Private Attributes</h2></td></tr>
1239
1239
  <p><a class="el" href="classSVF_1_1MergeFunctionRets.html">MergeFunctionRets</a> Pass </p>
1240
1240
 
1241
1241
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00121">121</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1242
- <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; std::unique_ptr&lt;BreakConstantGEPs&gt; p1 = std::make_unique&lt;BreakConstantGEPs&gt;();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> *module = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; p1-&gt;runOnModule(*module);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; std::unique_ptr&lt;UnifyFunctionExitNodes&gt; p2 =</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; std::make_unique&lt;UnifyFunctionExitNodes&gt;();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> *module = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> = module-&gt;begin(), E = module-&gt;end(); <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> != E; ++<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> &amp;fun = *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (fun.isDeclaration())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; p2-&gt;runOnFunction(fun);</div><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;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
1242
+ <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; std::unique_ptr&lt;BreakConstantGEPs&gt; p1 = std::make_unique&lt;BreakConstantGEPs&gt;();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> *module = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; p1-&gt;runOnModule(*module);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; std::unique_ptr&lt;UnifyFunctionExitNodes&gt; p2 =</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; std::make_unique&lt;UnifyFunctionExitNodes&gt;();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>(); ++i)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> *module = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">getModule</a>(i);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> = module-&gt;begin(), E = module-&gt;end(); <a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a> != E; ++<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> &amp;fun = *<a class="code" href="CFLGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (fun.isDeclaration())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; p2-&gt;runOnFunction(fun);</div><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;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
1243
1243
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00095">LLVMModule.h:95</a></div></div>
1244
1244
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00084">SVFBasicTypes.h:84</a></div></div>
1245
1245
  <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>
@@ -615,7 +615,7 @@ Additional Inherited Members</h2></td></tr>
615
615
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
616
616
  <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>
617
617
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
618
- <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>
618
+ <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#l00124">BasicTypes.h:124</a></div></div>
619
619
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
620
620
  <div class="ttc" id="classSVF_1_1LeakChecker_html_aa45d35a0dc5162e8cef8b27b92ff243d"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#aa45d35a0dc5162e8cef8b27b92ff243d">SVF::LeakChecker::isSinkLikeFun</a></div><div class="ttdeci">virtual bool isSinkLikeFun(const SVFFunction *fun) override</div><div class="ttdoc">Whether the function is a heap deallocator (free/release memory) </div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00086">LeakChecker.h:86</a></div></div>
621
621
  <div class="ttc" id="classSVF_1_1VFG_html_a6bbfe457dcc7104e6928323499ea964e"><div class="ttname"><a href="classSVF_1_1VFG.html#a6bbfe457dcc7104e6928323499ea964e">SVF::VFG::getActualParmVFGNode</a></div><div class="ttdeci">ActualParmVFGNode * getActualParmVFGNode(const PAGNode *aparm, const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00235">VFG.h:235</a></div></div>
@@ -668,7 +668,7 @@ Additional Inherited Members</h2></td></tr>
668
668
  <div class="ttc" id="classSVF_1_1RetICFGNode_html_a8f0490ea9491afdf81641e9928f5a5f7"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#a8f0490ea9491afdf81641e9928f5a5f7">SVF::RetICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00474">ICFGNode.h:474</a></div></div>
669
669
  <div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
670
670
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
671
- <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>
671
+ <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#l00124">BasicTypes.h:124</a></div></div>
672
672
  <div class="ttc" id="classSVF_1_1ICFG_html_a66cb50d8c176f800f06d9cb8924eb896"><div class="ttname"><a href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
673
673
  <div class="ttc" id="classSVF_1_1GraphReachSolver_html_a5032d3988dbce5a29274c55dc4dbe6bc"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">SVF::GraphReachSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00180">GraphReachSolver.h:180</a></div></div>
674
674
  <div class="ttc" id="classSVF_1_1RetICFGNode_html_a98c5e8394aa337e53a5ba8f4b0a245d4"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#a98c5e8394aa337e53a5ba8f4b0a245d4">SVF::RetICFGNode::getCallICFGNode</a></div><div class="ttdeci">const CallICFGNode * getCallICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00479">ICFGNode.h:479</a></div></div>
@@ -945,7 +945,7 @@ Additional Inherited Members</h2></td></tr>
945
945
  <p class="definition">Definition at line <a class="el" href="LeakChecker_8cpp_source.html#l00187">187</a> of file <a class="el" href="LeakChecker_8cpp_source.html">LeakChecker.cpp</a>.</p>
946
946
  <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* source = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(source);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>());</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(fun==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1LeakChecker.html#a0aa051a956b61cad9ec5419f33829e6a">validateSuccessTests</a>(source,fun);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1LeakChecker.html#af098d01a353a217bd54a90f92f62a45f">validateExpectedFailureTests</a>(source,fun);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
947
947
  <div class="ttc" id="classSVF_1_1LeakChecker_html_af098d01a353a217bd54a90f92f62a45f"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#af098d01a353a217bd54a90f92f62a45f">SVF::LeakChecker::validateExpectedFailureTests</a></div><div class="ttdeci">void validateExpectedFailureTests(const SVFGNode *source, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00255">LeakChecker.cpp:255</a></div></div>
948
- <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>
948
+ <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#l00124">BasicTypes.h:124</a></div></div>
949
949
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
950
950
  <div class="ttc" id="classSVF_1_1LeakChecker_html_a0aa051a956b61cad9ec5419f33829e6a"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a0aa051a956b61cad9ec5419f33829e6a">SVF::LeakChecker::validateSuccessTests</a></div><div class="ttdeci">void validateSuccessTests(const SVFGNode *source, const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8cpp_source.html#l00200">LeakChecker.cpp:200</a></div></div>
951
951
  <div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
@@ -502,7 +502,7 @@ Additional Inherited Members</h2></td></tr>
502
502
  <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00190">190</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
503
503
  <div class="fragment"><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::string str;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;LoadStmt: [Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot; &lt;-- Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">Options::ShowSVFIRValue</a>)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00115">SVFStatements.h:115</a></div></div>
504
504
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
505
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
505
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
506
506
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00260">SVFStatements.h:260</a></div></div>
507
507
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00392">SVFUtil.cpp:392</a></div></div>
508
508
  <div class="ttc" id="classSVF_1_1Options_html_a63c2ff1420867ea4ef0a94d28b3f0558"><div class="ttname"><a href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
@@ -607,7 +607,7 @@ Additional Inherited Members</h2></td></tr>
607
607
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00064">64</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
608
608
  <div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::string str;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;LoadVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>()-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_ad0b4dbe87e009518f22360c48b0d0c22"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00064">SVFStatements.cpp:64</a></div></div>
609
609
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00136">VFGNode.h:136</a></div></div>
610
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
610
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
611
611
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
612
612
  </div><!-- fragment -->
613
613
  </div>