svf-tools 1.0.424 → 1.0.427

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 (584) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -7
  5. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  7. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +9 -9
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +10 -9
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +9 -8
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +6 -6
  14. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +21 -21
  15. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  17. package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
  18. package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
  19. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  20. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +25 -25
  21. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  22. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  24. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
  25. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
  26. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/Conditions_8h_source.html +5 -5
  28. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/ConsG_8h_source.html +7 -7
  32. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +19 -19
  33. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +3 -3
  35. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +4 -4
  36. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +6 -6
  37. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +29 -29
  38. package/SVF-doxygen/html/html/DCHG_8h_source.html +14 -14
  39. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +6 -6
  40. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  42. package/SVF-doxygen/html/html/DDAPass_8h_source.html +10 -11
  43. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  44. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +13 -13
  46. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  47. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  48. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  49. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
  50. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +7 -7
  51. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
  52. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  54. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +6 -6
  55. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  56. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +3 -3
  57. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +20 -20
  58. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +8 -8
  59. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  60. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +9 -9
  61. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
  63. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
  65. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  67. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +7 -7
  68. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  69. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  71. package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
  72. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +11 -11
  73. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/IRGraph_8h_source.html +22 -22
  75. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +14 -14
  76. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +9 -9
  77. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
  78. package/SVF-doxygen/html/html/LLVMUtil_8h.html +11 -9
  79. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +21 -18
  80. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -6
  84. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +12 -12
  85. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  86. package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +1 -0
  87. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +22 -21
  88. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +10 -10
  89. package/SVF-doxygen/html/html/MHP_8cpp.html +8 -7
  90. package/SVF-doxygen/html/html/MHP_8cpp_source.html +63 -62
  91. package/SVF-doxygen/html/html/MHP_8h_source.html +37 -37
  92. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
  93. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
  94. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +1 -0
  96. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +41 -40
  97. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +29 -29
  98. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  99. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/MTA_8cpp_source.html +8 -8
  101. package/SVF-doxygen/html/html/MTA_8h_source.html +8 -8
  102. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  104. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +16 -16
  105. package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
  106. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +11 -11
  107. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  108. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
  109. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
  110. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  112. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  113. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  114. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/PCG_8cpp_source.html +10 -10
  116. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  117. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  118. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
  119. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +25 -28
  120. package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
  121. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +32 -32
  122. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -0
  123. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +56 -55
  124. package/SVF-doxygen/html/html/PathDPItem_8h_source.html +2 -2
  125. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  127. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -12
  128. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +56 -58
  129. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +31 -31
  130. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +44 -45
  131. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +5 -5
  132. package/SVF-doxygen/html/html/PointsTo_8h_source.html +5 -5
  133. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  134. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +14 -14
  135. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +554 -11
  137. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +37 -7
  138. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +7 -13
  139. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +38 -41
  140. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
  141. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  143. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
  144. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +11 -11
  145. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +15 -15
  146. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +15 -15
  149. package/SVF-doxygen/html/html/SVFG_8h_source.html +16 -16
  150. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +63 -62
  151. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +48 -48
  152. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -10
  153. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  154. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  155. package/SVF-doxygen/html/html/SVFModule_8h_source.html +5 -5
  156. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  157. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +9 -9
  158. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -15
  159. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
  160. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  161. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +15 -15
  162. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +7 -7
  163. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +3 -3
  164. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  165. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  166. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  167. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  168. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +5 -5
  169. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  170. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
  171. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +58 -58
  172. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +7 -7
  173. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +103 -104
  174. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +135 -139
  175. package/SVF-doxygen/html/html/TCT_8cpp_source.html +19 -19
  176. package/SVF-doxygen/html/html/TCT_8h_source.html +18 -18
  177. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  178. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  179. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +11 -11
  180. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  181. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  182. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  183. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +25 -25
  184. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +6 -6
  185. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -69
  186. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +119 -153
  187. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  188. package/SVF-doxygen/html/html/VFGNode_8h_source.html +165 -170
  189. package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
  190. package/SVF-doxygen/html/html/VFG_8h_source.html +22 -22
  191. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
  192. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  193. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  194. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
  195. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +11 -11
  196. package/SVF-doxygen/html/html/WPAPass_8h_source.html +12 -12
  197. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  198. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  199. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/annotated.html +2 -3
  201. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +23 -23
  204. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +25 -25
  205. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +13 -13
  207. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +266 -267
  209. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +20 -23
  210. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +226 -227
  211. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +279 -280
  213. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  214. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +288 -289
  215. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
  216. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +276 -277
  217. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +275 -276
  219. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
  220. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +287 -288
  221. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -10
  222. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  223. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +274 -275
  224. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -4
  225. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +17 -17
  227. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +173 -174
  229. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +24 -71
  230. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +33 -36
  232. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +6 -6
  233. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +24 -26
  234. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +7 -7
  235. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +41 -41
  236. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  237. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  238. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  241. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  245. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +25 -28
  250. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +166 -167
  251. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +120 -168
  252. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  253. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  255. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  256. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +7 -7
  257. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +266 -267
  258. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +31 -34
  259. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  261. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  262. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator-members.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html +6 -6
  264. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +7 -7
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +7 -7
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +7 -7
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +5 -5
  268. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +5 -5
  269. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +64 -64
  270. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +19 -20
  272. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +28 -72
  273. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  274. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  277. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +293 -294
  282. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +259 -260
  284. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
  285. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +284 -285
  286. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -46
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +12 -12
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +324 -325
  289. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +25 -28
  290. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +65 -65
  291. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +29 -29
  294. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +28 -28
  295. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  297. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
  298. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +6 -6
  299. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  300. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +13 -13
  301. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +3 -3
  304. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  305. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  308. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +9 -9
  309. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +17 -17
  310. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +37 -37
  314. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +9 -9
  316. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  321. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +23 -23
  322. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +26 -26
  324. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  325. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  327. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  328. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +53 -53
  329. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +37 -37
  330. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +119 -119
  331. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  332. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +31 -31
  333. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  336. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -13
  337. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +104 -104
  338. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
  339. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  340. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +88 -88
  341. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +25 -25
  342. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  343. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  345. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  347. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +22 -22
  348. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
  349. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  350. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  351. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  352. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +21 -21
  353. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +33 -33
  354. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  355. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
  356. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  357. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  358. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +1 -1
  359. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +34 -49
  360. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +174 -174
  361. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  362. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  363. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  364. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  365. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +129 -130
  367. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -150
  368. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +6 -6
  369. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +1 -1
  370. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +7 -7
  371. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +25 -25
  372. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
  373. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  374. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  375. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  376. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  377. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  378. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -11
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +15 -15
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +21 -21
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  388. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  389. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +5 -5
  390. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
  391. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +10 -10
  392. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
  393. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  394. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
  395. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +39 -39
  396. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +240 -241
  397. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -4
  398. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  399. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  400. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  401. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +104 -104
  402. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +5 -7
  403. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +215 -281
  404. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +57 -57
  405. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  406. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  407. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  408. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
  409. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
  410. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  412. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  413. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +232 -233
  414. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -9
  415. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +33 -33
  416. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  417. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +35 -37
  418. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  419. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  420. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
  421. package/SVF-doxygen/html/html/classSVF_1_1VFPathCond.html +5 -5
  422. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  424. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +337 -338
  425. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -15
  426. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  427. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  428. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  429. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +19 -20
  430. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +24 -68
  431. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  432. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  433. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +4 -4
  434. package/SVF-doxygen/html/html/classes.html +96 -97
  435. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
  436. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  437. package/SVF-doxygen/html/html/functions_a.html +4 -4
  438. package/SVF-doxygen/html/html/functions_b.html +1 -1
  439. package/SVF-doxygen/html/html/functions_d.html +0 -3
  440. package/SVF-doxygen/html/html/functions_f.html +3 -3
  441. package/SVF-doxygen/html/html/functions_func.html +7 -7
  442. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  443. package/SVF-doxygen/html/html/functions_func_g.html +9 -12
  444. package/SVF-doxygen/html/html/functions_func_o.html +3 -4
  445. package/SVF-doxygen/html/html/functions_g.html +13 -16
  446. package/SVF-doxygen/html/html/functions_l.html +6 -6
  447. package/SVF-doxygen/html/html/functions_n.html +3 -3
  448. package/SVF-doxygen/html/html/functions_o.html +13 -12
  449. package/SVF-doxygen/html/html/functions_p.html +4 -4
  450. package/SVF-doxygen/html/html/functions_r.html +3 -3
  451. package/SVF-doxygen/html/html/functions_s.html +6 -4
  452. package/SVF-doxygen/html/html/functions_t.html +3 -3
  453. package/SVF-doxygen/html/html/functions_v.html +6 -6
  454. package/SVF-doxygen/html/html/functions_vars_d.html +0 -3
  455. package/SVF-doxygen/html/html/functions_w.html +5 -9
  456. package/SVF-doxygen/html/html/globals.html +6 -0
  457. package/SVF-doxygen/html/html/globals_b.html +6 -0
  458. package/SVF-doxygen/html/html/globals_c.html +118 -100
  459. package/SVF-doxygen/html/html/globals_f.html +9 -3
  460. package/SVF-doxygen/html/html/globals_g.html +3 -0
  461. package/SVF-doxygen/html/html/globals_i.html +14 -2
  462. package/SVF-doxygen/html/html/globals_l.html +3 -0
  463. package/SVF-doxygen/html/html/globals_m.html +17 -14
  464. package/SVF-doxygen/html/html/globals_p.html +3 -0
  465. package/SVF-doxygen/html/html/globals_r.html +3 -0
  466. package/SVF-doxygen/html/html/globals_s.html +27 -22
  467. package/SVF-doxygen/html/html/globals_type.html +114 -0
  468. package/SVF-doxygen/html/html/globals_u.html +8 -2
  469. package/SVF-doxygen/html/html/globals_v.html +12 -0
  470. package/SVF-doxygen/html/html/hierarchy.html +149 -150
  471. package/SVF-doxygen/html/html/menudata.js +25 -19
  472. package/SVF-doxygen/html/html/namespaceSVF.html +128 -779
  473. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +128 -95
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  475. package/SVF-doxygen/html/html/namespacemembers.html +0 -6
  476. package/SVF-doxygen/html/html/namespacemembers_b.html +2 -8
  477. package/SVF-doxygen/html/html/namespacemembers_c.html +2 -26
  478. package/SVF-doxygen/html/html/namespacemembers_f.html +0 -6
  479. package/SVF-doxygen/html/html/namespacemembers_func.html +6 -3
  480. package/SVF-doxygen/html/html/namespacemembers_g.html +3 -3
  481. package/SVF-doxygen/html/html/namespacemembers_i.html +10 -22
  482. package/SVF-doxygen/html/html/namespacemembers_l.html +0 -3
  483. package/SVF-doxygen/html/html/namespacemembers_m.html +0 -3
  484. package/SVF-doxygen/html/html/namespacemembers_p.html +0 -6
  485. package/SVF-doxygen/html/html/namespacemembers_r.html +1 -4
  486. package/SVF-doxygen/html/html/namespacemembers_s.html +1 -19
  487. package/SVF-doxygen/html/html/namespacemembers_type.html +560 -4
  488. package/SVF-doxygen/html/html/namespacemembers_u.html +0 -6
  489. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -12
  490. package/SVF-doxygen/html/html/search/all_1.js +3 -3
  491. package/SVF-doxygen/html/html/search/all_10.js +8 -9
  492. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  493. package/SVF-doxygen/html/html/search/all_13.js +10 -13
  494. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  495. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  496. package/SVF-doxygen/html/html/search/all_16.js +6 -6
  497. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  498. package/SVF-doxygen/html/html/search/all_2.js +3 -3
  499. package/SVF-doxygen/html/html/search/all_3.js +7 -9
  500. package/SVF-doxygen/html/html/search/all_4.js +0 -1
  501. package/SVF-doxygen/html/html/search/all_6.js +3 -3
  502. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  503. package/SVF-doxygen/html/html/search/all_8.js +0 -1
  504. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  505. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  506. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  507. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  508. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  509. package/SVF-doxygen/html/html/search/classes_7.js +0 -1
  510. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  511. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  512. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  513. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  514. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  515. package/SVF-doxygen/html/html/search/typedefs_0.js +2 -2
  516. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
  517. package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
  518. package/SVF-doxygen/html/html/search/typedefs_11.js +4 -7
  519. package/SVF-doxygen/html/html/search/typedefs_13.js +2 -2
  520. package/SVF-doxygen/html/html/search/typedefs_14.js +4 -4
  521. package/SVF-doxygen/html/html/search/typedefs_2.js +7 -9
  522. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  523. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  524. package/SVF-doxygen/html/html/search/typedefs_8.js +4 -4
  525. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  526. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  527. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -2
  528. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  529. package/SVF-doxygen/html/html/search/variables_4.js +0 -1
  530. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  531. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  532. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  533. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  534. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +19 -19
  539. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +19 -19
  540. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  541. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  542. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  543. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  544. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  546. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  550. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  551. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
  552. package/clean.sh +2 -2
  553. package/include/DDA/DDAPass.h +0 -6
  554. package/include/Graphs/ICFGEdge.h +1 -1
  555. package/include/Graphs/VFGNode.h +4 -18
  556. package/include/MemoryModel/PointerAnalysis.h +0 -4
  557. package/include/MemoryModel/PointerAnalysisImpl.h +0 -10
  558. package/include/MemoryModel/PointsTo.h +1 -1
  559. package/include/MemoryModel/SVFVariables.h +4 -4
  560. package/include/MemoryModel/SymbolTableInfo.h +0 -11
  561. package/include/SABER/PathCondAllocator.h +1 -0
  562. package/include/SVF-FE/BasicTypes.h +41 -2
  563. package/include/SVF-FE/LLVMUtil.h +7 -0
  564. package/include/Util/BasicTypes.h +0 -35
  565. package/include/Util/CoreBitVector.h +1 -1
  566. package/include/Util/SVFBasicTypes.h +6 -27
  567. package/include/Util/SVFUtil.h +1 -1
  568. package/include/WPA/WPAPass.h +0 -6
  569. package/lib/DDA/DDAPass.cpp +1 -1
  570. package/lib/MTA/LockResultValidator.cpp +1 -0
  571. package/lib/MTA/MHP.cpp +1 -0
  572. package/lib/MTA/MTAResultValidator.cpp +1 -0
  573. package/lib/MTA/PCG.cpp +1 -1
  574. package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -9
  575. package/lib/MemoryModel/PointsTo.cpp +2 -2
  576. package/lib/MemoryModel/SVFVariables.cpp +2 -2
  577. package/lib/MemoryModel/SymbolTableInfo.cpp +0 -5
  578. package/lib/SABER/PathCondAllocator.cpp +1 -1
  579. package/lib/SVF-FE/BreakConstantExpr.cpp +1 -0
  580. package/lib/SVF-FE/LLVMUtil.cpp +3 -2
  581. package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
  582. package/lib/Util/CoreBitVector.cpp +1 -1
  583. package/lib/Util/PTAStat.cpp +3 -1
  584. package/package.json +1 -1
@@ -322,18 +322,18 @@ 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#l00229">229</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
325
- <div class="fragment"><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; std::vector&lt;Function *&gt; init_funcs;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</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="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func: mod)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</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="l00239"></a><span class="lineno"> 239</span>&#160; init_funcs.push_back(&amp;func);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</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="l00241"></a><span class="lineno"> 241</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="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</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; <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="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</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="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; M = *mainMod;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; );</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <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="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</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="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; ));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// emit &quot;call void @_GLOBAL__sub_I_XXX()&quot;</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; init: init_funcs)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; init-&gt;getName(),</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; );</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// main() should be called after all _GLOBAL__sub_I_XXX functions.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</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="l00288"></a><span class="lineno"> 288</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</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#l00082">BasicTypes.h:82</a></div></div>
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#l00075">BasicTypes.h:75</a></div></div>
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="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
325
+ <div class="fragment"><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; std::vector&lt;Function *&gt; init_funcs;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</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="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func: mod)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</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="l00239"></a><span class="lineno"> 239</span>&#160; init_funcs.push_back(&amp;func);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</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="l00241"></a><span class="lineno"> 241</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="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</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; <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="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</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="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; M = *mainMod;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; );</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <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="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</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="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; ));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// emit &quot;call void @_GLOBAL__sub_I_XXX()&quot;</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; init: init_funcs)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; init-&gt;getName(),</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; );</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// main() should be called after all _GLOBAL__sub_I_XXX functions.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</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="l00288"></a><span class="lineno"> 288</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</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#l00081">BasicTypes.h:81</a></div></div>
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#l00074">BasicTypes.h:74</a></div></div>
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="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</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>
329
329
  <div class="ttc" id="LLVMModule_8cpp_html_a264d24658581f23cb7e764c7a21e9b26"><div class="ttname"><a href="LLVMModule_8cpp.html#a264d24658581f23cb7e764c7a21e9b26">SVF_GLOBAL_SUB_I_XXX</a></div><div class="ttdeci">#define SVF_GLOBAL_SUB_I_XXX</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00056">LLVMModule.cpp:56</a></div></div>
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#l00093">LLVMModule.h:93</a></div></div>
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#l00074">BasicTypes.h:74</a></div></div>
332
- <div class="ttc" id="namespaceSVF_html_a94824519e439aeef1568d415b6f7331c"><div class="ttname"><a href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">SVF::IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00202">BasicTypes.h:202</a></div></div>
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#l00073">BasicTypes.h:73</a></div></div>
332
+ <div class="ttc" id="namespaceSVF_html_a94824519e439aeef1568d415b6f7331c"><div class="ttname"><a href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">SVF::IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00167">BasicTypes.h:167</a></div></div>
333
333
  <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>
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#l00054">LLVMModule.h:54</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
- <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#l00076">BasicTypes.h:76</a></div></div>
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#l00075">BasicTypes.h:75</a></div></div>
337
337
  </div><!-- fragment -->
338
338
  </div>
339
339
  </div>
@@ -364,9 +364,9 @@ 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#l00210">210</a> of file <a class="el" href="LLVMModule_8h_source.html">LLVMModule.h</a>.</p>
367
- <div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</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="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// short-circuit and return false.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (ctirModuleFlag == <span class="keyword">nullptr</span>)</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; <span class="keywordflow">return</span> <span class="keyword">false</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;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</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#l00119">BasicTypes.h:119</a></div></div>
367
+ <div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</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="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// short-circuit and return false.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (ctirModuleFlag == <span class="keyword">nullptr</span>)</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; <span class="keywordflow">return</span> <span class="keyword">false</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;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</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#l00113">BasicTypes.h:113</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#l00093">LLVMModule.h:93</a></div></div>
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#l00077">SVFBasicTypes.h:77</a></div></div>
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#l00081">SVFBasicTypes.h:81</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>
371
371
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ac59b07cafcbacc950eefea4082425b63"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">SVF::LLVMModuleSet::llvmModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * llvmModuleSet</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00050">LLVMModule.h:50</a></div></div>
372
372
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a8afb7ab3ee4632e78d546e549110e74c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">SVF::LLVMModuleSet::getModule</a></div><div class="ttdeci">Module * getModule(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00098">LLVMModule.h:98</a></div></div>
@@ -435,12 +435,12 @@ Static Private Attributes</h2></td></tr>
435
435
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00295">295</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
436
436
  <div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> funDecls, funDefs;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;string&gt;</a> declNames, defNames, intersectNames;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Function*&gt;</a> NameToFunDefMapTy;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;string, Set&lt;Function*&gt;</a>&gt; NameToFunDeclsMapTy;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">for</span> (SVFModule::LLVMFunctionSetType::iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(),</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *it;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (fun-&gt;isDeclaration())</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; funDecls.insert(fun);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; declNames.insert(fun-&gt;getName().str());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; funDefs.insert(fun);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; defNames.insert(fun-&gt;getName().str());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// Find the intersectNames</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;string&gt;::iterator</a> declIter, defIter;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; declIter = declNames.begin();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; defIter = defNames.begin();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">while</span> (declIter != declNames.end() &amp;&amp; defIter != defNames.end())</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span> (*declIter &lt; *defIter)</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; declIter++;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span> (!(*defIter &lt; *declIter))</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; intersectNames.insert(*declIter);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; declIter++;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; defIter++;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; NameToFunDefMapTy nameToFunDefMap;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDefs.begin(),</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; eit = funDefs.end(); it != eit; ++it)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdef = *it;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;getName().str();</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; nameToFunDefMap[funName] = fdef;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; NameToFunDeclsMapTy nameToFunDeclsMap;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDecls.begin(),</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; eit = funDecls.end(); it != eit; ++it)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdecl = *it;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> decls;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; decls.insert(fdecl);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; nameToFunDeclsMap[funName] = decls;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;</a> &amp;decls = mit-&gt;second;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; decls.insert(fdecl);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDecls.begin(),</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; eit = funDecls.end(); it != eit; ++it)</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdecl = *it;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">string</span> funName = fdecl-&gt;getName().str();</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; NameToFunDefMapTy::iterator mit = nameToFunDefMap.find(funName);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDefMap.end())</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(fdecl)] = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(mit-&gt;second);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> it = funDefs.begin(),</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; eit = funDefs.end(); it != eit; ++it)</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fdef = *it;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordtype">string</span> funName = fdef-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>().str();</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; std::vector&lt;const SVFFunction*&gt;&amp; decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(fdef)];</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Function*&gt;::iterator</a> sit = mit-&gt;second.begin(),</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; seit = mit-&gt;second.end(); sit != seit; ++sit)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; decls.push_back(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">getSVFFunction</a>(*sit));</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
437
437
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a377cefaad4b688ab6edf94ba4abe00ee"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">SVF::LLVMModuleSet::FunDefToDeclsMap</a></div><div class="ttdeci">FunDefToDeclsMapTy FunDefToDeclsMap</div><div class="ttdoc">Function definition to function declaration map. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00059">LLVMModule.h:59</a></div></div>
438
- <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
438
+ <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
439
439
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_aee80b29e5246e3eaa0e30e165346101f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">SVF::LLVMModuleSet::FunDeclToDefMap</a></div><div class="ttdeci">FunDeclToDefMapTy FunDeclToDefMap</div><div class="ttdoc">Function declaration to function definition map. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00057">LLVMModule.h:57</a></div></div>
440
- <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#l00102">SVFBasicTypes.h:102</a></div></div>
440
+ <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#l00106">SVFBasicTypes.h:106</a></div></div>
441
441
  <div class="ttc" id="classSVF_1_1SVFModule_html_a648542aa5c4b487ad5aa12a39d15e951"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">SVF::SVFModule::llvmFunBegin</a></div><div class="ttdeci">llvm_iterator llvmFunBegin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00130">SVFModule.h:130</a></div></div>
442
- <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#l00097">SVFBasicTypes.h:97</a></div></div>
443
- <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#l00074">BasicTypes.h:74</a></div></div>
442
+ <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#l00101">SVFBasicTypes.h:101</a></div></div>
443
+ <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#l00073">BasicTypes.h:73</a></div></div>
444
444
  <div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00249">SVFBasicTypes.h:249</a></div></div>
445
445
  <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#l00051">LLVMModule.h:51</a></div></div>
446
446
  <div class="ttc" id="classSVF_1_1SVFModule_html_af969d7739f27c8242985656bafbabaeb"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">SVF::SVFModule::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00121">SVFModule.h:121</a></div></div>
@@ -471,9 +471,9 @@ 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#l00407">407</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
474
- <div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</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="l00410"></a><span class="lineno"> 410</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</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="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = *it;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span> (global-&gt;hasPrivateLinkage())</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">string</span> name = global-&gt;getName().str();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; NameToGlobalsMapTy::iterator mit = nameToGlobalsMap.find(name);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (mit == nameToGlobalsMap.end())</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> globals;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; globals.insert(global);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; nameToGlobalsMap[name] = globals;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</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="l00428"></a><span class="lineno"> 428</span>&#160; globals.insert(global);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</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; <span class="keywordflow">for</span> (NameToGlobalsMapTy::iterator it = nameToGlobalsMap.begin(),</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; eit = nameToGlobalsMap.end(); it != eit; ++it)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = it-&gt;second;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *rep = *(globals.begin());</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> repit = globals.begin();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">while</span> (repit != globals.end())</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *repit;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span> (cur-&gt;hasInitializer())</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; rep = cur;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; repit++;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <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="l00449"></a><span class="lineno"> 449</span>&#160; seit = globals.end(); sit != seit; ++sit)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *sit;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</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#l00081">BasicTypes.h:81</a></div></div>
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#l00102">SVFBasicTypes.h:102</a></div></div>
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#l00097">SVFBasicTypes.h:97</a></div></div>
474
+ <div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</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="l00410"></a><span class="lineno"> 410</span>&#160; NameToGlobalsMapTy nameToGlobalsMap;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</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="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = *it;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span> (global-&gt;hasPrivateLinkage())</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">string</span> name = global-&gt;getName().str();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; NameToGlobalsMapTy::iterator mit = nameToGlobalsMap.find(name);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (mit == nameToGlobalsMap.end())</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> globals;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; globals.insert(global);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; nameToGlobalsMap[name] = globals;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</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="l00428"></a><span class="lineno"> 428</span>&#160; globals.insert(global);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</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; <span class="keywordflow">for</span> (NameToGlobalsMapTy::iterator it = nameToGlobalsMap.begin(),</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; eit = nameToGlobalsMap.end(); it != eit; ++it)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;</a> &amp;globals = it-&gt;second;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *rep = *(globals.begin());</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;GlobalVariable*&gt;::iterator</a> repit = globals.begin();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">while</span> (repit != globals.end())</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *repit;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span> (cur-&gt;hasInitializer())</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; rep = cur;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; repit++;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <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="l00449"></a><span class="lineno"> 449</span>&#160; seit = globals.end(); sit != seit; ++sit)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *cur = *sit;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</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#l00080">BasicTypes.h:80</a></div></div>
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#l00106">SVFBasicTypes.h:106</a></div></div>
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#l00101">SVFBasicTypes.h:101</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>
478
478
  <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#l00051">LLVMModule.h:51</a></div></div>
479
479
  <div class="ttc" id="classSVF_1_1SVFModule_html_a4dc32c583d29d74d052eaa5665b0b70e"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a4dc32c583d29d74d052eaa5665b0b70e">SVF::SVFModule::global_begin</a></div><div class="ttdeci">global_iterator global_begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00164">SVFModule.h:164</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#l00458">458</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
552
- <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</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="l00461"></a><span class="lineno"> 461</span>&#160; {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; std::string moduleName = mod.getName().str();</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; std::string OutputFilename;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; OutputFilename = moduleName + suffix;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; std::error_code EC;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</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="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; WriteBitcodeToFile(mod, OS);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; OS.flush();</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</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#l00082">BasicTypes.h:82</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#l00096">BasicTypes.h:96</a></div></div>
552
+ <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</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="l00461"></a><span class="lineno"> 461</span>&#160; {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; std::string moduleName = mod.getName().str();</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; std::string OutputFilename;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::size_t pos = moduleName.rfind(<span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span> (pos != std::string::npos)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; OutputFilename = moduleName.substr(0, pos) + suffix;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; OutputFilename = moduleName + suffix;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; std::error_code EC;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</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="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 7)</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; WriteBitcodeToFile(mod, OS);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; WriteBitcodeToFile(&amp;mod, OS);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; OS.flush();</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</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#l00081">BasicTypes.h:81</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#l00095">BasicTypes.h:95</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#l00054">LLVMModule.h:54</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#l00196">196</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="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a868fa5069b01b7a7dfbc5fb99cb76385">Options::SVFMain</a>)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">addSVFMain</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">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="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (Module::iterator it = mod.begin(), eit = mod.end();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *func = &amp;*it;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</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="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; eit = mod.global_end(); it != eit; ++it)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &amp;*it;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">for</span> (Module::alias_iterator it = mod.alias_begin(),</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; eit = mod.alias_end(); it != eit; ++it)</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; <a class="code" href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">GlobalAlias</a> *alias = &amp;*it;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; }</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="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#l00082">BasicTypes.h:82</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#l00081">BasicTypes.h:81</a></div></div>
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#l00074">BasicTypes.h:74</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#l00125">BasicTypes.h:125</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#l00081">BasicTypes.h:81</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#l00080">BasicTypes.h:80</a></div></div>
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#l00073">BasicTypes.h:73</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#l00116">BasicTypes.h:116</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#l00210">Options.h:210</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#l00051">LLVMModule.h:51</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#l00229">LLVMModule.cpp:229</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; <a class="code" href="SVF-FE_2BasicTypes_8h.html#a312d4d865f87a9bff58ce66b087c13d0">SMDiagnostic</a> Err;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</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="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <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="l00188"></a><span class="lineno"> 188</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="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</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="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="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#l00209">Options.h:209</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#l00009">BasicTypes.h:9</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#l00013">BasicTypes.h:13</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#l00052">LLVMModule.h:52</a></div></div>
@@ -1239,10 +1239,10 @@ 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> F = module-&gt;begin(), E = module-&gt;end(); F != E; ++F)</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 = *F;</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#l00082">BasicTypes.h:82</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> F = module-&gt;begin(), E = module-&gt;end(); F != E; ++F)</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 = *F;</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#l00081">BasicTypes.h:81</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#l00093">LLVMModule.h:93</a></div></div>
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#l00077">SVFBasicTypes.h:77</a></div></div>
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#l00074">BasicTypes.h:74</a></div></div>
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#l00081">SVFBasicTypes.h:81</a></div></div>
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#l00073">BasicTypes.h:73</a></div></div>
1246
1246
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a8afb7ab3ee4632e78d546e549110e74c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">SVF::LLVMModuleSet::getModule</a></div><div class="ttdeci">Module * getModule(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00098">LLVMModule.h:98</a></div></div>
1247
1247
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
1248
1248
  </div><!-- fragment -->
@@ -1265,7 +1265,7 @@ Static Private Attributes</h2></td></tr>
1265
1265
  </div><div class="memdoc">
1266
1266
 
1267
1267
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00087">87</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
1268
- <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">loadModules</a>(moduleNameVec);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">prePassSchedule</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::string preProcessSuffix = <span class="stringliteral">&quot;.pre.bc&quot;</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Get the existing module names, remove old extention, add preProcessSuffix</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; moduleNameVec.size(); i++)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lastIndex = moduleNameVec[i].find_last_of(<span class="stringliteral">&quot;.&quot;</span>); </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::string rawName = moduleNameVec[i].substr(0, lastIndex);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; moduleNameVec[i] = (rawName + preProcessSuffix);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad5ef9421d501b2747d4fb31d4189b53f">dumpModulesToFile</a>(preProcessSuffix);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a14b0b55d397d6f8a5dfe3b574021f801">preProcessed</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00077">SVFBasicTypes.h:77</a></div></div>
1268
+ <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">loadModules</a>(moduleNameVec);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">prePassSchedule</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::string preProcessSuffix = <span class="stringliteral">&quot;.pre.bc&quot;</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Get the existing module names, remove old extention, add preProcessSuffix</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; moduleNameVec.size(); i++)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lastIndex = moduleNameVec[i].find_last_of(<span class="stringliteral">&quot;.&quot;</span>); </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::string rawName = moduleNameVec[i].substr(0, lastIndex);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; moduleNameVec[i] = (rawName + preProcessSuffix);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad5ef9421d501b2747d4fb31d4189b53f">dumpModulesToFile</a>(preProcessSuffix);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a14b0b55d397d6f8a5dfe3b574021f801">preProcessed</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
1269
1269
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00076">LLVMModule.h:76</a></div></div>
1270
1270
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ad5ef9421d501b2747d4fb31d4189b53f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad5ef9421d501b2747d4fb31d4189b53f">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00458">LLVMModule.cpp:458</a></div></div>
1271
1271
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a298966366b02d0a34f409c2c77da3789"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">SVF::LLVMModuleSet::loadModules</a></div><div class="ttdeci">void loadModules(const std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00148">LLVMModule.cpp:148</a></div></div>