svf-tools 1.0.586 → 1.0.588

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 (537) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +5 -5
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +5 -5
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +9 -9
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +10 -10
  9. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +13 -13
  17. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +10 -10
  18. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +3 -3
  20. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +6 -6
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
  22. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +32 -32
  26. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  27. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  28. package/SVF-doxygen/html/html/CHG_8cpp_source.html +15 -15
  29. package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
  30. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  31. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +40 -39
  32. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +18 -18
  33. package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
  34. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
  36. package/SVF-doxygen/html/html/Casting_8h.html +1 -0
  37. package/SVF-doxygen/html/html/Casting_8h_source.html +42 -42
  38. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
  39. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  42. package/SVF-doxygen/html/html/ConsG_8h_source.html +4 -4
  43. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +21 -21
  44. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +11 -11
  45. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  47. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +29 -29
  49. package/SVF-doxygen/html/html/DCHG_8h_source.html +13 -13
  50. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +13 -13
  51. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  52. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  53. package/SVF-doxygen/html/html/DDAPass_8h_source.html +4 -4
  54. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  55. package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
  56. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
  57. package/SVF-doxygen/html/html/DPItem_8h_source.html +5 -5
  58. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  59. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  60. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  61. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
  64. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  65. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +8 -8
  66. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  67. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
  68. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +6 -6
  69. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  71. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +13 -13
  72. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
  73. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +13 -13
  74. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +7 -7
  75. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
  77. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +12 -12
  81. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  83. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  84. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +10 -10
  86. package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
  87. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +12 -12
  88. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  89. package/SVF-doxygen/html/html/IRGraph_8h_source.html +6 -6
  90. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +8 -8
  91. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +28 -28
  92. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +7 -7
  93. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +26 -26
  94. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +18 -18
  95. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  96. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +8 -8
  98. package/SVF-doxygen/html/html/LocationSet_8h_source.html +5 -5
  99. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +16 -16
  100. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +10 -10
  101. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +15 -15
  102. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  103. package/SVF-doxygen/html/html/MHP_8cpp.html +3 -3
  104. package/SVF-doxygen/html/html/MHP_8cpp_source.html +25 -26
  105. package/SVF-doxygen/html/html/MHP_8h_source.html +10 -10
  106. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
  107. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
  108. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +8 -8
  109. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +21 -21
  110. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +10 -10
  111. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +7 -7
  112. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  113. package/SVF-doxygen/html/html/MTA_8cpp_source.html +14 -14
  114. package/SVF-doxygen/html/html/MTA_8h_source.html +7 -7
  115. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  116. package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
  117. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +20 -20
  118. package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
  119. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +17 -17
  120. package/SVF-doxygen/html/html/MemSSA_8h_source.html +7 -7
  121. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  122. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  124. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  125. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  126. package/SVF-doxygen/html/html/PCG_8cpp_source.html +11 -11
  127. package/SVF-doxygen/html/html/PCG_8h_source.html +7 -7
  128. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  129. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
  130. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  131. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  132. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  133. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +19 -19
  134. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +19 -19
  135. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +59 -59
  136. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +81 -82
  137. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  138. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  139. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  140. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  141. package/SVF-doxygen/html/html/SCC_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +5 -1
  143. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
  144. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -27
  145. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +69 -70
  146. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  147. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  148. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
  149. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
  150. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +3 -3
  151. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +4 -4
  152. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  153. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
  154. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  155. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
  156. package/SVF-doxygen/html/html/SVFG_8h_source.html +4 -4
  157. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +56 -56
  158. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +47 -47
  159. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  160. package/SVF-doxygen/html/html/SVFIR_8h_source.html +8 -8
  161. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
  162. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +3 -3
  163. package/SVF-doxygen/html/html/SVFModule_8h_source.html +13 -13
  164. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +5 -5
  165. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  166. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  167. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
  168. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +14 -14
  169. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
  170. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  171. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
  172. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +4 -4
  173. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  174. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +4 -4
  175. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +14 -14
  176. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +8 -8
  177. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +10 -10
  178. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  179. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  180. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
  181. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
  182. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  183. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
  184. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  185. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +40 -40
  186. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +6 -6
  187. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +16 -16
  188. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  189. package/SVF-doxygen/html/html/TCT_8cpp_source.html +20 -21
  190. package/SVF-doxygen/html/html/TCT_8h_source.html +16 -16
  191. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  192. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +8 -8
  193. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +9 -9
  194. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  195. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +9 -9
  196. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  197. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -14
  198. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +97 -97
  199. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  200. package/SVF-doxygen/html/html/VFGNode_8h_source.html +7 -7
  201. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
  202. package/SVF-doxygen/html/html/VFG_8h_source.html +6 -6
  203. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  204. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +13 -13
  205. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +6 -6
  206. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  207. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +9 -9
  208. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  209. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  210. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  211. package/SVF-doxygen/html/html/WorkList_8h_source.html +2 -2
  212. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  213. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  216. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  221. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +249 -250
  223. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +37 -39
  224. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +216 -217
  225. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -11
  226. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +259 -260
  227. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +15 -17
  228. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +271 -272
  229. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +8 -10
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +14 -14
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +257 -258
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -8
  233. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +164 -165
  236. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +32 -34
  237. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
  241. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +6 -6
  243. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +191 -192
  244. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +18 -20
  245. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +185 -186
  246. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -11
  247. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +189 -190
  250. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +63 -63
  252. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
  253. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +5 -5
  254. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  257. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  261. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +153 -154
  264. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +17 -19
  265. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  268. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  269. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +255 -256
  271. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +46 -48
  272. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  275. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +2 -2
  276. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +74 -74
  280. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +7 -7
  281. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +15 -15
  282. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +7 -7
  283. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +27 -27
  284. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +8 -8
  290. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
  291. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +283 -284
  293. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -5
  294. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +249 -250
  295. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +27 -29
  296. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +274 -275
  297. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +67 -69
  298. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +14 -14
  299. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +35 -36
  300. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  301. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  303. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  305. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  306. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +6 -6
  307. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +4 -4
  313. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +4 -4
  315. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +17 -17
  316. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
  319. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +10 -10
  320. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  321. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +2 -2
  324. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  327. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
  329. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  330. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
  331. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  333. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +8 -8
  334. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +51 -51
  335. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  336. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +9 -9
  339. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +67 -67
  340. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +19 -19
  341. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +50 -51
  342. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +38 -38
  343. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  345. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +16 -16
  346. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +15 -15
  347. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +44 -44
  348. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
  349. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
  350. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  351. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +50 -50
  352. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  354. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  355. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +9 -9
  356. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  357. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  358. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  359. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +26 -26
  361. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  363. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
  364. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  365. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  367. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  368. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  369. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  370. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  371. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  372. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +120 -121
  373. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +249 -267
  374. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  375. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
  376. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +11 -11
  377. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  378. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  379. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
  380. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  381. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  382. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +97 -97
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +4 -4
  388. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +4 -4
  389. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +4 -4
  390. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +142 -142
  391. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
  392. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
  393. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +6 -6
  394. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  395. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  396. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  397. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +35 -35
  398. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -10
  399. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  400. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +10 -10
  401. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
  402. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +228 -229
  403. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +2 -4
  404. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  405. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  406. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  407. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  408. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +29 -29
  409. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +50 -51
  410. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  412. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  413. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
  414. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +4 -4
  415. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  416. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  417. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +221 -222
  419. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +17 -19
  420. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +12 -12
  424. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  425. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  426. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  427. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  428. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +324 -325
  429. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +39 -41
  430. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +10 -10
  431. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  432. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  433. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  434. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +9 -9
  435. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  436. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  437. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1 -1
  438. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  439. package/SVF-doxygen/html/html/functions_a.html +5 -8
  440. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  441. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  442. package/SVF-doxygen/html/html/functions_i.html +2 -2
  443. package/SVF-doxygen/html/html/functions_l.html +8 -8
  444. package/SVF-doxygen/html/html/functions_n.html +4 -4
  445. package/SVF-doxygen/html/html/functions_o.html +8 -8
  446. package/SVF-doxygen/html/html/functions_p.html +14 -16
  447. package/SVF-doxygen/html/html/functions_r.html +2 -4
  448. package/SVF-doxygen/html/html/functions_s.html +7 -7
  449. package/SVF-doxygen/html/html/functions_type.html +0 -3
  450. package/SVF-doxygen/html/html/functions_v.html +6 -6
  451. package/SVF-doxygen/html/html/functions_w.html +11 -11
  452. package/SVF-doxygen/html/html/namespaceSVF.html +156 -174
  453. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +55 -55
  454. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +40 -40
  455. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +72 -71
  456. package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
  457. package/SVF-doxygen/html/html/namespacemembers_type_s.html +0 -3
  458. package/SVF-doxygen/html/html/search/all_1.js +0 -1
  459. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  460. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  461. package/SVF-doxygen/html/html/search/all_12.js +5 -6
  462. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  463. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  464. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  465. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  466. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  467. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  468. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  469. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  471. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  472. package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
  473. package/SVF-doxygen/html/html/search/typedefs_10.js +0 -1
  474. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  475. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  476. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  477. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  478. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  479. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  480. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
  481. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
  482. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +5 -5
  483. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  484. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  486. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  487. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  488. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  489. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  490. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  491. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  492. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  493. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  494. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl.html +3 -3
  495. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01typename_01std_1_1enable__if_3_01std_1_1101a002941fb8432b76e90258f1ec6b7.html +3 -3
  496. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl.html +3 -3
  497. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5_01_4.html +3 -3
  498. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5const_01_4.html +3 -3
  499. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_4.html +3 -3
  500. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5_01_4.html +3 -3
  501. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5const_01_4.html +3 -3
  502. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01std_1_1unique__ptr_3_01From_01_4_01_4.html +3 -3
  503. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap.html +5 -5
  504. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  505. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type.html +4 -4
  506. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type_3_01const_01From_01_4.html +6 -6
  507. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  508. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  509. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  510. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  511. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  512. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  513. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  514. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  515. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  516. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  517. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  518. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  519. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  521. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  522. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
  524. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  525. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
  526. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  527. package/SVF-doxygen/html/html/svf-ex_8cpp.html +5 -5
  528. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  529. package/include/MemoryModel/PointerAnalysis.h +0 -1
  530. package/include/SVF-FE/BasicTypes.h +7 -1
  531. package/include/Util/BasicTypes.h +1 -22
  532. package/include/Util/Casting.h +1 -0
  533. package/include/Util/SVFBasicTypes.h +0 -5
  534. package/lib/MTA/MHP.cpp +4 -4
  535. package/lib/MTA/TCT.cpp +1 -1
  536. package/lib/SVF-FE/CPPUtil.cpp +4 -0
  537. package/package.json +1 -1
@@ -66,43 +66,43 @@ $(function() {
66
66
  <div class="title">CPPUtil.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="CPPUtil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- CPPUtil.h -- Base class of pointer analyses ---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CPPUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 13, 2016</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Xiaokang Fan</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef CPPUtil_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define CPPUtil_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>CHGraph;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * Util class to assist pointer analysis for cpp programs</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil.html"> 43</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacecppUtil.html">cppUtil</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">DemangledName</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297"> 48</a></span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02"> 49</a></span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243"> 50</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">DemangledName</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(const <a class="code" href="namespacestd.html">std</a>::<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a> &amp;<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(const std::string &amp;name);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">isValVtbl</a>(const Value *val);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a1e99d5cf28e0d6546e0d85b805a7e371">isLoadVtblInst</a>(const LoadInst *loadInst);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a>(CallSite cs);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a>(const Function *F);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a>(const Function *F);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a>(const Function *F);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;const <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a>(const Function *F);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> * VtableA = {&amp;A::foo}</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> * A::A(this){</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> * *this = &amp;VtableA;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * A* p = new A;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> * cs: p-&gt;foo(...)</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> * ==&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> * vtptr = *p;</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> * vfn = &amp;vtptr[i]</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> * %funp = *vfn</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> * call %funp(p,...)</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> * getConstructorThisPtr(A) return &quot;this&quot; pointer</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> * getVCallThisPtr(cs) return p (this pointer)</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> * getVCallVtblPtr(cs) return vtptr</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> * getVCallIdx(cs) return i</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> * getClassNameFromVtblObj(VtableA) return</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> * getClassNameFromType(type of p) return type A</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;const <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* <a class="code" href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">getConstructorThisPtr</a>(const Function* fun);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;const <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">getVCallThisPtr</a>(CallSite cs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;const <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">getVCallVtblPtr</a>(CallSite cs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#ad2a35c1d2e357690e634bb250a68795d">getVCallIdx</a>(CallSite cs);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#ad83c097f1c77cdf52fc219ef07ee0b1a">getClassNameFromVtblObj</a>(const Value *value);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">getClassNameFromType</a>(const Type *ty);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">getClassNameOfThisPtr</a>(CallSite cs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a0a67c31dcc44784b09dca54b4b7c624a">getFunNameOfVCallSite</a>(CallSite cs);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#abcba23ffa41fe5b456289e528d1b4c4e">VCallInCtorOrDtor</a>(CallSite cs);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> * A(A* this){</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> * store this this.addr;</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> * tmp = load this.addr;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> * this1 = bitcast(tmp);</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> * B(this1);</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> * this and this1 are the same thisPtr in the constructor</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a5dd3230226002e126f6b0a877f9550ce">isSameThisPtrInConstructor</a>(const Argument* thisPtr1, const Value* thisPtr2);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html"> 108</a></span>&#160;namespace ctir</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace"> 113</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">derefMDName</a> = <span class="stringliteral">&quot;ctir&quot;</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#aa4630844aa25aa4801659304a2552058"> 116</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#aa4630844aa25aa4801659304a2552058">vtMDName</a> = <span class="stringliteral">&quot;ctir.vt&quot;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a02b3f4190d325c921922c25e319dc8d9"> 119</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a02b3f4190d325c921922c25e319dc8d9">vtInitMDName</a> = <span class="stringliteral">&quot;ctir.vt.init&quot;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3"> 122</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3">moduleFlagValue</a> = 1;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// End namespace cppUtil</span></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;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CPPUtil_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad2a35c1d2e357690e634bb250a68795d"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad2a35c1d2e357690e634bb250a68795d">SVF::cppUtil::getVCallIdx</a></div><div class="ttdeci">u64_t getVCallIdx(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00391">CPPUtil.cpp:391</a></div></div>
69
+ <a href="CPPUtil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- CPPUtil.h -- Base class of pointer analyses ---------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CPPUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 13, 2016</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Xiaokang Fan</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef CPPUtil_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define CPPUtil_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span>CHGraph;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * Util class to assist pointer analysis for cpp programs</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil.html"> 43</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacecppUtil.html">cppUtil</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">DemangledName</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297"> 48</a></span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">className</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02"> 49</a></span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">funcName</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243"> 50</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">isThunkFunc</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">struct </span><a class="code" href="structSVF_1_1cppUtil_1_1DemangledName.html">DemangledName</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(const <a class="code" href="namespacestd.html">std</a>::<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a> &amp;<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">getBeforeBrackets</a>(const std::string &amp;name);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">isValVtbl</a>(const Value *val);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a1e99d5cf28e0d6546e0d85b805a7e371">isLoadVtblInst</a>(const LoadInst *loadInst);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a>(CallSite cs);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a>(const Function *F);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a>(const Function *F);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">isCPPThunkFunction</a>(const Function *F);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;const <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">getThunkTarget</a>(const Function *F);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> * VtableA = {&amp;A::foo}</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> * A::A(this){</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> * *this = &amp;VtableA;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> * A* p = new A;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> * cs: p-&gt;foo(...)</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> * ==&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> * vtptr = *p;</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> * vfn = &amp;vtptr[i]</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> * %funp = *vfn</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> * call %funp(p,...)</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> * getConstructorThisPtr(A) return &quot;this&quot; pointer</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> * getVCallThisPtr(cs) return p (this pointer)</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> * getVCallVtblPtr(cs) return vtptr</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> * getVCallIdx(cs) return i</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> * getClassNameFromVtblObj(VtableA) return</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> * getClassNameFromType(type of p) return type A</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;const <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* <a class="code" href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">getConstructorThisPtr</a>(const Function* fun);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;const <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">getVCallThisPtr</a>(CallSite cs);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;const <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">getVCallVtblPtr</a>(CallSite cs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#ad2a35c1d2e357690e634bb250a68795d">getVCallIdx</a>(CallSite cs);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#ad83c097f1c77cdf52fc219ef07ee0b1a">getClassNameFromVtblObj</a>(const Value *value);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">getClassNameFromType</a>(const Type *ty);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">getClassNameOfThisPtr</a>(CallSite cs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil.html#a0a67c31dcc44784b09dca54b4b7c624a">getFunNameOfVCallSite</a>(CallSite cs);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#abcba23ffa41fe5b456289e528d1b4c4e">VCallInCtorOrDtor</a>(CallSite cs);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> * A(A* this){</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> * store this this.addr;</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> * tmp = load this.addr;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> * this1 = bitcast(tmp);</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> * B(this1);</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> * this and this1 are the same thisPtr in the constructor</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;bool <a class="code" href="namespaceSVF_1_1cppUtil.html#a5dd3230226002e126f6b0a877f9550ce">isSameThisPtrInConstructor</a>(const Argument* thisPtr1, const Value* thisPtr2);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html"> 108</a></span>&#160;namespace ctir</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace"> 113</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">derefMDName</a> = <span class="stringliteral">&quot;ctir&quot;</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#aa4630844aa25aa4801659304a2552058"> 116</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#aa4630844aa25aa4801659304a2552058">vtMDName</a> = <span class="stringliteral">&quot;ctir.vt&quot;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a02b3f4190d325c921922c25e319dc8d9"> 119</a></span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a02b3f4190d325c921922c25e319dc8d9">vtInitMDName</a> = <span class="stringliteral">&quot;ctir.vt.init&quot;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3"> 122</a></span>&#160;<span class="keyword">const</span> uint32_t <a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3">moduleFlagValue</a> = 1;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;} <span class="comment">// End namespace cppUtil</span></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;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CPPUtil_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad2a35c1d2e357690e634bb250a68795d"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad2a35c1d2e357690e634bb250a68795d">SVF::cppUtil::getVCallIdx</a></div><div class="ttdeci">u64_t getVCallIdx(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00395">CPPUtil.cpp:395</a></div></div>
70
70
  <div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_a02b3f4190d325c921922c25e319dc8d9"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#a02b3f4190d325c921922c25e319dc8d9">SVF::cppUtil::ctir::vtInitMDName</a></div><div class="ttdeci">const std::string vtInitMDName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00119">CPPUtil.h:119</a></div></div>
71
71
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_aca6465c72effcaddeb34f55da4555754"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">SVF::cppUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00260">CPPUtil.cpp:260</a></div></div>
72
72
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
73
73
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_af6117df8aec7f4c077058fa8f00b0243"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#af6117df8aec7f4c077058fa8f00b0243">SVF::cppUtil::DemangledName::isThunkFunc</a></div><div class="ttdeci">bool isThunkFunc</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00050">CPPUtil.h:50</a></div></div>
74
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad6f9578cdce518141772a11617160da8"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">SVF::cppUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00454">CPPUtil.cpp:454</a></div></div>
74
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad6f9578cdce518141772a11617160da8"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">SVF::cppUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00458">CPPUtil.cpp:458</a></div></div>
75
75
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html">SVF::cppUtil::DemangledName</a></div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00046">CPPUtil.h:46</a></div></div>
76
76
  <div class="ttc" id="cJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
77
77
  <div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
78
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a891719bac36ebb6c001f073dfa5a9e7b"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">SVF::cppUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00411">CPPUtil.cpp:411</a></div></div>
79
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00486">CPPUtil.cpp:486</a></div></div>
78
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a891719bac36ebb6c001f073dfa5a9e7b"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">SVF::cppUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00415">CPPUtil.cpp:415</a></div></div>
79
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00490">CPPUtil.cpp:490</a></div></div>
80
80
  <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>
81
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a5dd3230226002e126f6b0a877f9550ce"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a5dd3230226002e126f6b0a877f9550ce">SVF::cppUtil::isSameThisPtrInConstructor</a></div><div class="ttdeci">bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00339">CPPUtil.cpp:339</a></div></div>
82
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a917c4bd2d5fd1354b5069bf0a68533d9"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">SVF::cppUtil::isCPPThunkFunction</a></div><div class="ttdeci">bool isCPPThunkFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00285">CPPUtil.cpp:285</a></div></div>
83
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_abcba23ffa41fe5b456289e528d1b4c4e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#abcba23ffa41fe5b456289e528d1b4c4e">SVF::cppUtil::VCallInCtorOrDtor</a></div><div class="ttdeci">bool VCallInCtorOrDtor(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00563">CPPUtil.cpp:563</a></div></div>
84
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a26c3ceb82a398663284690c898a5354d"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">SVF::cppUtil::getConstructorThisPtr</a></div><div class="ttdeci">const Argument * getConstructorThisPtr(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00365">CPPUtil.cpp:365</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a5dd3230226002e126f6b0a877f9550ce"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a5dd3230226002e126f6b0a877f9550ce">SVF::cppUtil::isSameThisPtrInConstructor</a></div><div class="ttdeci">bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00343">CPPUtil.cpp:343</a></div></div>
82
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a917c4bd2d5fd1354b5069bf0a68533d9"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a917c4bd2d5fd1354b5069bf0a68533d9">SVF::cppUtil::isCPPThunkFunction</a></div><div class="ttdeci">bool isCPPThunkFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00289">CPPUtil.cpp:289</a></div></div>
83
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_abcba23ffa41fe5b456289e528d1b4c4e"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#abcba23ffa41fe5b456289e528d1b4c4e">SVF::cppUtil::VCallInCtorOrDtor</a></div><div class="ttdeci">bool VCallInCtorOrDtor(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00567">CPPUtil.cpp:567</a></div></div>
84
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a26c3ceb82a398663284690c898a5354d"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a26c3ceb82a398663284690c898a5354d">SVF::cppUtil::getConstructorThisPtr</a></div><div class="ttdeci">const Argument * getConstructorThisPtr(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00369">CPPUtil.cpp:369</a></div></div>
85
85
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1e99d5cf28e0d6546e0d85b805a7e371"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1e99d5cf28e0d6546e0d85b805a7e371">SVF::cppUtil::isLoadVtblInst</a></div><div class="ttdeci">bool isLoadVtblInst(const LoadInst *loadInst)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00229">CPPUtil.cpp:229</a></div></div>
86
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ac9c6d4315e7a1a826add7ed9cf924553"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">SVF::cppUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00291">CPPUtil.cpp:291</a></div></div>
87
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad83c097f1c77cdf52fc219ef07ee0b1a"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad83c097f1c77cdf52fc219ef07ee0b1a">SVF::cppUtil::getClassNameFromVtblObj</a></div><div class="ttdeci">std::string getClassNameFromVtblObj(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00434">CPPUtil.cpp:434</a></div></div>
86
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ac9c6d4315e7a1a826add7ed9cf924553"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">SVF::cppUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00295">CPPUtil.cpp:295</a></div></div>
87
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad83c097f1c77cdf52fc219ef07ee0b1a"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad83c097f1c77cdf52fc219ef07ee0b1a">SVF::cppUtil::getClassNameFromVtblObj</a></div><div class="ttdeci">std::string getClassNameFromVtblObj(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00438">CPPUtil.cpp:438</a></div></div>
88
88
  <div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_aa4630844aa25aa4801659304a2552058"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#aa4630844aa25aa4801659304a2552058">SVF::cppUtil::ctir::vtMDName</a></div><div class="ttdeci">const std::string vtMDName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00116">CPPUtil.h:116</a></div></div>
89
- <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#l00069">BasicTypes.h:69</a></div></div>
89
+ <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#l00048">BasicTypes.h:48</a></div></div>
90
90
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a1dd17b240663bc9412adefde82385e02"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a1dd17b240663bc9412adefde82385e02">SVF::cppUtil::DemangledName::funcName</a></div><div class="ttdeci">std::string funcName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00049">CPPUtil.h:49</a></div></div>
91
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a7c9507812041b5de8dbbca5b602fefbd"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">SVF::cppUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00315">CPPUtil.cpp:315</a></div></div>
91
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a7c9507812041b5de8dbbca5b602fefbd"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">SVF::cppUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00319">CPPUtil.cpp:319</a></div></div>
92
92
  <div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_a05c7c51164928786d70713094db7f3f3"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#a05c7c51164928786d70713094db7f3f3">SVF::cppUtil::ctir::moduleFlagValue</a></div><div class="ttdeci">const uint32_t moduleFlagValue</div><div class="ttdoc">Value we expect a ctir-annotated module to have. </div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00122">CPPUtil.h:122</a></div></div>
93
93
  <div class="ttc" id="structSVF_1_1cppUtil_1_1DemangledName_html_a5cd207bce618521166e6fa235014b297"><div class="ttname"><a href="structSVF_1_1cppUtil_1_1DemangledName.html#a5cd207bce618521166e6fa235014b297">SVF::cppUtil::DemangledName::className</a></div><div class="ttdeci">std::string className</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00048">CPPUtil.h:48</a></div></div>
94
- <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00087">BasicTypes.h:87</a></div></div>
94
+ <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
95
95
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_aeef0f5c6486379043a7d47b0635f2667"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aeef0f5c6486379043a7d47b0635f2667">SVF::cppUtil::isValVtbl</a></div><div class="ttdeci">bool isValVtbl(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00124">CPPUtil.cpp:124</a></div></div>
96
96
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1cf2e4671b16b477cc779c72f2419234"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1cf2e4671b16b477cc779c72f2419234">SVF::cppUtil::getBeforeBrackets</a></div><div class="ttdeci">std::string getBeforeBrackets(const std::string &amp;name)</div></div>
97
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3b00cc9770022f124958513bf1e52a05"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">SVF::cppUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00380">CPPUtil.cpp:380</a></div></div>
98
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3bed7bc0a0ae580841ca049f91690ff7"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">SVF::cppUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00520">CPPUtil.cpp:520</a></div></div>
97
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3b00cc9770022f124958513bf1e52a05"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">SVF::cppUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00384">CPPUtil.cpp:384</a></div></div>
98
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3bed7bc0a0ae580841ca049f91690ff7"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">SVF::cppUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00524">CPPUtil.cpp:524</a></div></div>
99
99
  <div class="ttc" id="namespacecppUtil_html"><div class="ttname"><a href="namespacecppUtil.html">cppUtil</a></div></div>
100
100
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &amp;name)</div></div>
101
101
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
102
- <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a0a67c31dcc44784b09dca54b4b7c624a"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a0a67c31dcc44784b09dca54b4b7c624a">SVF::cppUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00547">CPPUtil.cpp:547</a></div></div>
102
+ <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a0a67c31dcc44784b09dca54b4b7c624a"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a0a67c31dcc44784b09dca54b4b7c624a">SVF::cppUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00551">CPPUtil.cpp:551</a></div></div>
103
103
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
104
- <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#l00071">BasicTypes.h:71</a></div></div>
105
- <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
104
+ <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#l00050">BasicTypes.h:50</a></div></div>
105
+ <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
106
106
  </div><!-- fragment --></div><!-- contents -->
107
107
  <!-- start footer part -->
108
108
  <hr class="footer"/><address class="footer"><small>
@@ -69,14 +69,14 @@ $(function() {
69
69
  <a href="CSC_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- CSC.cpp -- Cycle Stride Calculation algorithm---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CSC.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 09, Feb, 2019</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yuxiang Lei</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CSC_8h.html">WPA/CSC.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#ac531556d88bedad2717aacc6575bfedd"> 39</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#ac531556d88bedad2717aacc6575bfedd">CSC::clear</a>()</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; _I = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; _D.clear();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a049dc6bd348b1108a8a9726d50a4f280"> 49</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#a049dc6bd348b1108a8a9726d50a4f280">CSC::find</a>(<a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; candidates)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; clear();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a> revCandidates;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">while</span> (!candidates.empty())</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId = candidates.top();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; revCandidates.push(nId);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; candidates.pop();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (_scc-&gt;subNodes(nId).count()&gt;1 &amp;&amp; !isVisited(nId)) <span class="comment">// node is actually in a cycle</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; visit(nId, 0);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">while</span> (!revCandidates.empty())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId = revCandidates.top();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; candidates.push(nId);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; revCandidates.pop();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a2863ae212693f9ca6341e23f9d9634bf"> 76</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#a2863ae212693f9ca6341e23f9d9634bf">CSC::visit</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _w)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// pwcReps[nodeId] = _scc-&gt;repNode(nodeId);</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; setVisited(nodeId);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; _I += _w;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; _D[nodeId] = _I;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; _S.push(nodeId);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = _consG-&gt;getConstraintNode(nodeId);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> eit = node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#ae42c4a86f8c588e348ce4b0d7d919393">directOutEdgeBegin</a>(); eit != node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aa77fb67a62abe4c28cecc73d395d7b12">directOutEdgeEnd</a>(); ++eit)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gepCGEdge = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(*eit))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; offset = gepCGEdge-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; offset = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = (*eit)-&gt;getDstID();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span> (_scc-&gt;repNode(nodeId) == _scc-&gt;repNode(dstId) &amp;&amp; !isVisited(dstId))</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; visit(dstId, offset);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a> _revS;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> _C;</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; <span class="keywordflow">while</span> (!_S.empty())</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> backNodeId = _S.top();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _S.pop();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; _revS.push(backNodeId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* backNode = _consG-&gt;getConstraintNode(backNodeId);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (_consG-&gt;hasEdge(node, backNode, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* normalGep = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>&gt;(_consG-&gt;getEdge(node, backNode, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _w = normalGep-&gt;<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a0c67a58a8ef22a07a1f45968ae0dfe4f">getConstantFieldIdx</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _l = _D[nodeId] +_w - _D[backNodeId];</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; backNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(_l);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> cNodeId : _C)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; _consG-&gt;getConstraintNode(cNodeId)-&gt;strides.set(_l);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (_consG-&gt;hasEdge(node, backNode, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>) ||</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; _consG-&gt;hasEdge(node, backNode, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>))</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _l = _D[nodeId] - _D[backNodeId];</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; backNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(_l);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> cNodeId : _C)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; _consG-&gt;getConstraintNode(cNodeId)-&gt;strides.set(_l);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; _C.insert(backNodeId);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</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; <span class="keywordflow">while</span> (!_revS.empty())</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> backedId = _revS.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; _S.push(backedId);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; _revS.pop();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; _S.pop(); <span class="comment">// after checking all the edges of the top node of _S, remove the node</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div><div class="ttc" id="CSC_8h_html"><div class="ttname"><a href="CSC_8h.html">CSC.h</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1CSC_html_ac531556d88bedad2717aacc6575bfedd"><div class="ttname"><a href="classSVF_1_1CSC.html#ac531556d88bedad2717aacc6575bfedd">SVF::CSC::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8cpp_source.html#l00039">CSC.cpp:39</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
72
- <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00122">SVFBasicTypes.h:122</a></div></div>
72
+ <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00117">SVFBasicTypes.h:117</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html_a0c67a58a8ef22a07a1f45968ae0dfe4f"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#a0c67a58a8ef22a07a1f45968ae0dfe4f">SVF::NormalGepCGEdge::getConstantFieldIdx</a></div><div class="ttdeci">s32_t getConstantFieldIdx() const</div><div class="ttdoc">Get location set of the gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00307">ConsGEdge.h:307</a></div></div>
74
74
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
75
- <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
75
+ <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00122">SVFBasicTypes.h:122</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_aa77fb67a62abe4c28cecc73d395d7b12"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#aa77fb67a62abe4c28cecc73d395d7b12">SVF::ConstraintNode::directOutEdgeEnd</a></div><div class="ttdeci">iterator directOutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00618">ConsG.cpp:618</a></div></div>
79
- <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
79
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">SVF::ConstraintEdge::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">SVF::ConstraintEdge::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
82
82
  <div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
@@ -88,7 +88,7 @@ $(function() {
88
88
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1CSC_html_a049dc6bd348b1108a8a9726d50a4f280"><div class="ttname"><a href="classSVF_1_1CSC.html#a049dc6bd348b1108a8a9726d50a4f280">SVF::CSC::find</a></div><div class="ttdeci">void find(NodeStack &amp;candidates)</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8cpp_source.html#l00049">CSC.cpp:49</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00745">SparseBitVector.h:745</a></div></div>
91
- <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>
91
+ <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#l00344">Casting.h:344</a></div></div>
92
92
  </div><!-- fragment --></div><!-- contents -->
93
93
  <!-- start footer part -->
94
94
  <hr class="footer"/><address class="footer"><small>
@@ -67,18 +67,18 @@ $(function() {
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
69
  <a href="CSC_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- CSC.h -- Cycle Stride Calculation algorithm---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * CSC.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 09, Feb, 2019</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yuxiang Lei</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef PROJECT_CSC_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define PROJECT_CSC_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SCC_8h.html">Util/SCC.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span> <span class="comment">// for NodeBS</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ConsG_8h.html">Graphs/ConsG.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WorkList_8h.html">Util/WorkList.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;limits.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;stack&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a1f730acb8da8187da732631ca6bbff01"> 44</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SCCDetection.html">SCCDetection&lt;ConstraintGraph *&gt;</a> <a class="code" href="namespaceSVF.html#a1f730acb8da8187da732631ca6bbff01">CGSCC</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CSC.html">CSC</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a3fb06a0c1d3960c32e52ff485417035c"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1CSC.html#a3fb06a0c1d3960c32e52ff485417035c">IdToIdMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FILOWorkList.html">FILOWorkList&lt;NodeID&gt;</a> <a class="code" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e">WorkStack</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a8e740b5d0f02c66c09fec3f65a54d1c2"> 54</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> IdToIdMap::iterator <a class="code" href="classSVF_1_1CSC.html#a8e740b5d0f02c66c09fec3f65a54d1c2">iterator</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a549a0a410b1ca9eeb22c05dd93761560"> 57</a></span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* <a class="code" href="classSVF_1_1CSC.html#a549a0a410b1ca9eeb22c05dd93761560">_consG</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#ad6639daea8a19a920c88af332a420d00"> 58</a></span>&#160; CGSCC* <a class="code" href="classSVF_1_1CSC.html#ad6639daea8a19a920c88af332a420d00">_scc</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#af58e474ee7605663fd04fce58dc029d1"> 60</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1CSC.html#af58e474ee7605663fd04fce58dc029d1">_I</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a0eaf3a742fb8003b031528ee7c1c4799"> 61</a></span>&#160; IdToIdMap <a class="code" href="classSVF_1_1CSC.html#a0eaf3a742fb8003b031528ee7c1c4799">_D</a>; <span class="comment">// the sum of weight of a path relevant to a certain node, while accessing the node via DFS</span></div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a44dbda27203499770ed1315366218c51"> 62</a></span>&#160; <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a> <a class="code" href="classSVF_1_1CSC.html#a44dbda27203499770ed1315366218c51">_S</a>; <span class="comment">// a stack holding a DFS branch</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a98bf29b1b9a1ffee14fe65a7f6b56672"> 63</a></span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> <a class="code" href="classSVF_1_1CSC.html#a98bf29b1b9a1ffee14fe65a7f6b56672">_visited</a>; <span class="comment">// a set holding visited nodes</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// NodeStrides nodeStrides;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">// IdToIdMap pwcReps;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a4ffb05984b0509d97ec713fc6bfc4b6e"> 68</a></span>&#160; <a class="code" href="classSVF_1_1CSC.html#a4ffb05984b0509d97ec713fc6bfc4b6e">CSC</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* g, CGSCC* c)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; : _consG(g), _scc(c), _I(0) {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#a049dc6bd348b1108a8a9726d50a4f280">find</a>(<a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>&amp; candidates);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#a2863ae212693f9ca6341e23f9d9634bf">visit</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _w);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#ac531556d88bedad2717aacc6575bfedd">clear</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#a2913a7a83deae0b91f1f42dc45c4f3b2"> 75</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CSC.html#a2913a7a83deae0b91f1f42dc45c4f3b2">isVisited</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> _visited.find(nId) != _visited.end();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1CSC.html#adac02224ec722f0cf1954d7a484bd11e"> 80</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CSC.html#adac02224ec722f0cf1954d7a484bd11e">setVisited</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nId)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; _visited.insert(nId);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// inline iterator begin() { return pwcReps.begin(); }</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// inline iterator end() { return pwcReps.end(); }</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// NodeStrides &amp;getNodeStrides() { return nodeStrides; }</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// const NodeSet&amp; getPWCReps() const { return _pwcReps; }</span></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;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif //PROJECT_CSC_H</span></div><div class="ttc" id="classSVF_1_1CSC_html_ac531556d88bedad2717aacc6575bfedd"><div class="ttname"><a href="classSVF_1_1CSC.html#ac531556d88bedad2717aacc6575bfedd">SVF::CSC::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8cpp_source.html#l00039">CSC.cpp:39</a></div></div>
70
- <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00122">SVFBasicTypes.h:122</a></div></div>
70
+ <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00117">SVFBasicTypes.h:117</a></div></div>
71
71
  <div class="ttc" id="ConsG_8h_html"><div class="ttname"><a href="ConsG_8h.html">ConsG.h</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1CSC_html_a549a0a410b1ca9eeb22c05dd93761560"><div class="ttname"><a href="classSVF_1_1CSC.html#a549a0a410b1ca9eeb22c05dd93761560">SVF::CSC::_consG</a></div><div class="ttdeci">ConstraintGraph * _consG</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00057">CSC.h:57</a></div></div>
73
73
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00044">ConsG.h:44</a></div></div>
75
75
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
76
- <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
76
+ <div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack&lt; NodeID &gt; NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00122">SVFBasicTypes.h:122</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1CSC_html_ad6639daea8a19a920c88af332a420d00"><div class="ttname"><a href="classSVF_1_1CSC.html#ad6639daea8a19a920c88af332a420d00">SVF::CSC::_scc</a></div><div class="ttdeci">CGSCC * _scc</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00058">CSC.h:58</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1CSC_html_a3fb06a0c1d3960c32e52ff485417035c"><div class="ttname"><a href="classSVF_1_1CSC.html#a3fb06a0c1d3960c32e52ff485417035c">SVF::CSC::IdToIdMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeID &gt; IdToIdMap</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00052">CSC.h:52</a></div></div>
79
79
  <div class="ttc" id="SCC_8h_html"><div class="ttname"><a href="SCC_8h.html">SCC.h</a></div></div>
80
- <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
81
- <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#l00110">SVFBasicTypes.h:110</a></div></div>
80
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
81
+ <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>
82
82
  <div class="ttc" id="classSVF_1_1CSC_html_a44dbda27203499770ed1315366218c51"><div class="ttname"><a href="classSVF_1_1CSC.html#a44dbda27203499770ed1315366218c51">SVF::CSC::_S</a></div><div class="ttdeci">NodeStack _S</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00062">CSC.h:62</a></div></div>
83
83
  <div class="ttc" id="namespaceSVF_html_a1f730acb8da8187da732631ca6bbff01"><div class="ttname"><a href="namespaceSVF.html#a1f730acb8da8187da732631ca6bbff01">SVF::CGSCC</a></div><div class="ttdeci">SCCDetection&lt; ConstraintGraph * &gt; CGSCC</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00044">CSC.h:44</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1CSC_html_adac02224ec722f0cf1954d7a484bd11e"><div class="ttname"><a href="classSVF_1_1CSC.html#adac02224ec722f0cf1954d7a484bd11e">SVF::CSC::setVisited</a></div><div class="ttdeci">void setVisited(NodeID nId)</div><div class="ttdef"><b>Definition:</b> <a href="CSC_8h_source.html#l00080">CSC.h:80</a></div></div>