svf-tools 1.0.341 → 1.0.345

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 (465) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
  3. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  8. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  9. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  10. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  12. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  14. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  16. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  17. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
  18. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
  20. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
  21. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
  22. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
  24. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
  25. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
  27. package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
  28. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  29. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
  30. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  34. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  35. package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
  36. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  37. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  39. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
  40. package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
  41. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  42. package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
  43. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  46. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  48. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
  49. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
  50. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  51. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
  53. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  54. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  55. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  57. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
  58. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  59. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
  60. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
  61. package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
  62. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
  63. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  64. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
  65. package/SVF-doxygen/html/html/SVFIR_8h_source.html +31 -31
  66. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  67. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
  68. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  70. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  71. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
  72. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
  74. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  75. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
  78. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
  79. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
  80. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
  81. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  82. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  83. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  84. package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
  85. package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
  86. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  87. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  88. package/SVF-doxygen/html/html/annotated.html +17 -17
  89. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  90. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
  91. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  92. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
  93. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  94. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
  95. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  96. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
  97. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
  98. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
  100. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
  101. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
  102. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
  103. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
  104. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
  105. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
  106. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
  107. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
  108. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
  109. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
  110. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
  111. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
  112. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
  116. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
  117. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
  118. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
  119. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
  121. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
  122. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
  124. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
  125. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  126. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
  127. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
  128. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
  129. package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
  131. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
  133. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
  134. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
  136. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
  137. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  138. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
  139. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
  140. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
  141. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
  143. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
  144. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
  145. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  146. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  147. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
  148. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
  149. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
  150. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  151. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
  152. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
  153. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
  154. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
  155. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
  156. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
  157. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
  158. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  160. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
  162. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  163. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
  164. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
  165. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
  166. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
  169. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
  174. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
  175. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
  177. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
  178. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
  181. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
  182. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
  184. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
  185. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
  186. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
  187. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
  189. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
  192. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
  194. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
  195. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
  196. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
  197. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
  198. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
  199. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
  200. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
  202. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
  203. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
  204. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  206. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
  208. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
  211. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  213. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
  214. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
  215. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
  217. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
  219. package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
  221. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
  222. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
  223. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
  224. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  225. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
  228. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
  229. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  230. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
  232. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
  233. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
  235. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
  236. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  237. package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
  239. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
  241. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
  242. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
  244. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
  245. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
  246. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
  247. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
  249. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  251. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
  252. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
  253. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
  254. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
  255. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
  256. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  257. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
  258. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
  261. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
  262. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
  263. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +131 -131
  264. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  265. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
  266. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
  268. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
  269. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
  271. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
  273. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
  274. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
  275. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
  277. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  280. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
  282. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
  284. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
  285. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
  286. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
  287. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
  288. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
  289. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
  291. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
  292. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
  293. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  294. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
  295. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  297. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
  298. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
  299. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
  300. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
  301. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
  302. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  303. package/SVF-doxygen/html/html/classes.html +16 -16
  304. package/SVF-doxygen/html/html/functions_a.html +59 -59
  305. package/SVF-doxygen/html/html/functions_c.html +65 -67
  306. package/SVF-doxygen/html/html/functions_f.html +14 -14
  307. package/SVF-doxygen/html/html/functions_func.html +56 -56
  308. package/SVF-doxygen/html/html/functions_func_c.html +28 -28
  309. package/SVF-doxygen/html/html/functions_func_f.html +6 -6
  310. package/SVF-doxygen/html/html/functions_func_g.html +86 -86
  311. package/SVF-doxygen/html/html/functions_func_h.html +17 -17
  312. package/SVF-doxygen/html/html/functions_func_i.html +12 -12
  313. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  314. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  315. package/SVF-doxygen/html/html/functions_func_r.html +6 -6
  316. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  317. package/SVF-doxygen/html/html/functions_func_t.html +7 -7
  318. package/SVF-doxygen/html/html/functions_func_u.html +3 -3
  319. package/SVF-doxygen/html/html/functions_g.html +88 -88
  320. package/SVF-doxygen/html/html/functions_h.html +16 -16
  321. package/SVF-doxygen/html/html/functions_i.html +19 -19
  322. package/SVF-doxygen/html/html/functions_m.html +1 -1
  323. package/SVF-doxygen/html/html/functions_p.html +10 -13
  324. package/SVF-doxygen/html/html/functions_r.html +6 -6
  325. package/SVF-doxygen/html/html/functions_s.html +21 -18
  326. package/SVF-doxygen/html/html/functions_t.html +13 -15
  327. package/SVF-doxygen/html/html/functions_type.html +1 -1
  328. package/SVF-doxygen/html/html/functions_type_c.html +24 -24
  329. package/SVF-doxygen/html/html/functions_type_f.html +3 -3
  330. package/SVF-doxygen/html/html/functions_type_i.html +2 -2
  331. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  332. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  333. package/SVF-doxygen/html/html/functions_type_v.html +2 -2
  334. package/SVF-doxygen/html/html/functions_u.html +3 -3
  335. package/SVF-doxygen/html/html/functions_v.html +5 -5
  336. package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
  337. package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
  338. package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
  339. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  340. package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
  341. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  342. package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
  343. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  344. package/SVF-doxygen/html/html/hierarchy.html +7 -7
  345. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  346. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
  347. package/SVF-doxygen/html/html/search/all_1.js +58 -58
  348. package/SVF-doxygen/html/html/search/all_10.js +2 -3
  349. package/SVF-doxygen/html/html/search/all_12.js +5 -5
  350. package/SVF-doxygen/html/html/search/all_13.js +5 -4
  351. package/SVF-doxygen/html/html/search/all_14.js +8 -8
  352. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  353. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  354. package/SVF-doxygen/html/html/search/all_3.js +35 -34
  355. package/SVF-doxygen/html/html/search/all_6.js +12 -12
  356. package/SVF-doxygen/html/html/search/all_7.js +62 -61
  357. package/SVF-doxygen/html/html/search/all_8.js +17 -17
  358. package/SVF-doxygen/html/html/search/all_9.js +15 -15
  359. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  360. package/SVF-doxygen/html/html/search/classes_2.js +1 -1
  361. package/SVF-doxygen/html/html/search/classes_5.js +2 -2
  362. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  363. package/SVF-doxygen/html/html/search/classes_8.js +2 -2
  364. package/SVF-doxygen/html/html/search/classes_e.js +1 -1
  365. package/SVF-doxygen/html/html/search/functions_0.js +55 -55
  366. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  367. package/SVF-doxygen/html/html/search/functions_11.js +4 -4
  368. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  369. package/SVF-doxygen/html/html/search/functions_2.js +10 -10
  370. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  371. package/SVF-doxygen/html/html/search/functions_6.js +61 -61
  372. package/SVF-doxygen/html/html/search/functions_7.js +17 -17
  373. package/SVF-doxygen/html/html/search/functions_8.js +12 -12
  374. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  375. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  376. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  377. package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
  378. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  379. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  380. package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
  381. package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
  382. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  383. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  384. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  385. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  386. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  387. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  388. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  389. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  390. package/SVF-doxygen/html/html/search/variables_3.js +4 -4
  391. package/SVF-doxygen/html/html/search/variables_6.js +5 -5
  392. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  393. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  394. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  395. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
  396. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  397. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  398. package/include/DDA/ContextDDA.h +3 -3
  399. package/include/DDA/DDAClient.h +2 -2
  400. package/include/DDA/DDAVFSolver.h +2 -2
  401. package/include/DDA/FlowDDA.h +2 -2
  402. package/include/Graphs/ICFG.h +33 -33
  403. package/include/Graphs/ICFGNode.h +33 -33
  404. package/include/Graphs/ICFGStat.h +11 -11
  405. package/include/Graphs/PTACallGraph.h +19 -19
  406. package/include/Graphs/SVFG.h +16 -16
  407. package/include/Graphs/SVFGNode.h +14 -14
  408. package/include/Graphs/SVFGOPT.h +1 -1
  409. package/include/Graphs/ThreadCallGraph.h +25 -25
  410. package/include/Graphs/VFG.h +10 -10
  411. package/include/Graphs/VFGNode.h +8 -8
  412. package/include/MSSA/MSSAMuChi.h +6 -6
  413. package/include/MSSA/MemRegion.h +24 -24
  414. package/include/MSSA/MemSSA.h +10 -10
  415. package/include/MTA/LockResultValidator.h +2 -2
  416. package/include/MTA/MHP.h +4 -4
  417. package/include/MTA/PCG.h +1 -1
  418. package/include/MTA/TCT.h +2 -2
  419. package/include/MemoryModel/PointerAnalysis.h +12 -12
  420. package/include/MemoryModel/SVFIR.h +21 -21
  421. package/include/MemoryModel/SVFStatements.h +11 -11
  422. package/include/SABER/LeakChecker.h +4 -4
  423. package/include/SABER/ProgSlice.h +2 -2
  424. package/include/SABER/SaberCheckerAPI.h +4 -4
  425. package/include/SABER/SaberSVFGBuilder.h +1 -1
  426. package/include/SABER/SrcSnkDDA.h +1 -1
  427. package/include/SVF-FE/ICFGBuilder.h +4 -4
  428. package/include/SVF-FE/SVFIRBuilder.h +5 -5
  429. package/include/Util/Options.h +1 -1
  430. package/lib/DDA/ContextDDA.cpp +3 -3
  431. package/lib/DDA/DDAClient.cpp +1 -1
  432. package/lib/DDA/FlowDDA.cpp +1 -1
  433. package/lib/Graphs/ICFG.cpp +88 -71
  434. package/lib/Graphs/PTACallGraph.cpp +5 -5
  435. package/lib/Graphs/SVFG.cpp +7 -7
  436. package/lib/Graphs/ThreadCallGraph.cpp +6 -6
  437. package/lib/Graphs/VFG.cpp +6 -6
  438. package/lib/MSSA/MemRegion.cpp +17 -17
  439. package/lib/MSSA/MemSSA.cpp +3 -3
  440. package/lib/MTA/LockAnalysis.cpp +4 -4
  441. package/lib/MTA/MHP.cpp +5 -5
  442. package/lib/MTA/MTAResultValidator.cpp +1 -1
  443. package/lib/MTA/PCG.cpp +1 -1
  444. package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
  445. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  446. package/lib/MemoryModel/SVFIR.cpp +5 -5
  447. package/lib/MemoryModel/SVFStatements.cpp +53 -49
  448. package/lib/MemoryModel/SVFVariables.cpp +10 -10
  449. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  450. package/lib/SABER/FileChecker.cpp +2 -2
  451. package/lib/SABER/LeakChecker.cpp +8 -8
  452. package/lib/SABER/ProgSlice.cpp +2 -2
  453. package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
  454. package/lib/SVF-FE/Graph2Json.cpp +5 -5
  455. package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
  456. package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
  457. package/lib/Util/Options.cpp +3 -3
  458. package/lib/Util/SVFUtil.cpp +2 -0
  459. package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
  460. package/lib/WPA/Andersen.cpp +3 -3
  461. package/lib/WPA/FlowSensitive.cpp +2 -2
  462. package/lib/WPA/TypeAnalysis.cpp +1 -1
  463. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  464. package/lib/WPA/WPAPass.cpp +4 -4
  465. package/package.json +1 -1
@@ -2215,7 +2215,7 @@ template&lt;class X , class Y &gt; </div>
2215
2215
  <p>Get the meta data (line number and file name) info of a LLVM value </p>
2216
2216
 
2217
2217
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00269">269</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
2218
- <div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(val==<span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="stringliteral">&quot;{ empty val }&quot;</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; std::string str;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;{ &quot;</span>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = SVFUtil::dyn_cast&lt;Instruction&gt;(val))</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AllocaInst&gt;(inst))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">for</span> (llvm::DbgInfoIntrinsic *DII : FindDbgAddrUses(const_cast&lt;Instruction*&gt;(inst)))</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (llvm::DbgDeclareInst *DDI = SVFUtil::dyn_cast&lt;llvm::DbgDeclareInst&gt;(DII))</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; llvm::DIVariable *DIVar = SVFUtil::cast&lt;llvm::DIVariable&gt;(DDI-&gt;getVariable());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; DIVar-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; DIVar-&gt;getFilename();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst-&gt;getMetadata(<span class="stringliteral">&quot;dbg&quot;</span>)) <span class="comment">// Here I is an LLVM instruction</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; llvm::DILocation* Loc = SVFUtil::cast&lt;llvm::DILocation&gt;(N); <span class="comment">// DILocation is in DebugInfo.h</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">unsigned</span> Line = Loc-&gt;getLine();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">unsigned</span> Column = Loc-&gt;getColumn();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> File = Loc-&gt;getFilename();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">//StringRef Dir = Loc.getDirectory();</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(File.str().empty() || Line == 0) {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">auto</span> inlineLoc = Loc-&gt;getInlinedAt();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(inlineLoc) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; Line = inlineLoc-&gt;getLine();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; Column = inlineLoc-&gt;getColumn();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; File = inlineLoc-&gt;getFilename();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; } </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; Line &lt;&lt; <span class="stringliteral">&quot; cl: &quot;</span> &lt;&lt; Column &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; File;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* argument = SVFUtil::dyn_cast&lt;Argument&gt;(val))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 1)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;st&quot;</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 2)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;nd&quot;</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 3)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;rd&quot;</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;th&quot;</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; arg &quot;</span> &lt;&lt; argument-&gt;getParent()-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(argument-&gt;getParent());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;Glob &quot;</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">NamedMDNode</a>* CU_Nodes = gvar-&gt;getParent()-&gt;getNamedMetadata(<span class="stringliteral">&quot;llvm.dbg.cu&quot;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(CU_Nodes)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CU_Nodes-&gt;getNumOperands(); i != e; ++i)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; llvm::DICompileUnit *CUNode = SVFUtil::cast&lt;llvm::DICompileUnit&gt;(CU_Nodes-&gt;getOperand(i));</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> (llvm::DIGlobalVariableExpression *GV : CUNode-&gt;getGlobalVariables())</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; llvm::DIGlobalVariable * DGV = GV-&gt;getVariable();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(DGV-&gt;getName() == gvar-&gt;getName())</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; DGV-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; DGV-&gt;getFilename();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast&lt;Function&gt;(val))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(func);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast&lt;BasicBlock&gt;(val))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;basic block: &quot;</span> &lt;&lt; bb-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(bb-&gt;getFirstNonPHI());</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(val))</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;constant data&quot;</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;Can only get source location for instruction, argument, global var, function or constant data.&quot;</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }&quot;</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
2218
+ <div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(val==<span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="stringliteral">&quot;{ empty val }&quot;</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; std::string str;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;{ &quot;</span>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = SVFUtil::dyn_cast&lt;Instruction&gt;(val))</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AllocaInst&gt;(inst))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">for</span> (llvm::DbgInfoIntrinsic *DII : FindDbgAddrUses(const_cast&lt;Instruction*&gt;(inst)))</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (llvm::DbgDeclareInst *DDI = SVFUtil::dyn_cast&lt;llvm::DbgDeclareInst&gt;(DII))</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; llvm::DIVariable *DIVar = SVFUtil::cast&lt;llvm::DIVariable&gt;(DDI-&gt;getVariable());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; DIVar-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; DIVar-&gt;getFilename();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst-&gt;getMetadata(<span class="stringliteral">&quot;dbg&quot;</span>)) <span class="comment">// Here I is an LLVM instruction</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; llvm::DILocation* Loc = SVFUtil::cast&lt;llvm::DILocation&gt;(N); <span class="comment">// DILocation is in DebugInfo.h</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">unsigned</span> Line = Loc-&gt;getLine();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">unsigned</span> Column = Loc-&gt;getColumn();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> File = Loc-&gt;getFilename();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">//StringRef Dir = Loc.getDirectory();</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(File.str().empty() || Line == 0) {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">auto</span> inlineLoc = Loc-&gt;getInlinedAt();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(inlineLoc) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; Line = inlineLoc-&gt;getLine();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; Column = inlineLoc-&gt;getColumn();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; File = inlineLoc-&gt;getFilename();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; } </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; Line &lt;&lt; <span class="stringliteral">&quot; cl: &quot;</span> &lt;&lt; Column &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; File;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* argument = SVFUtil::dyn_cast&lt;Argument&gt;(val))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 1)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;st&quot;</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 2)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;nd&quot;</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument-&gt;getArgNo()%10 == 3)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;rd&quot;</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; rawstr &lt;&lt; argument-&gt;getArgNo() &lt;&lt; <span class="stringliteral">&quot;th&quot;</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; arg &quot;</span> &lt;&lt; argument-&gt;getParent()-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(argument-&gt;getParent());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;Glob &quot;</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">NamedMDNode</a>* CU_Nodes = gvar-&gt;getParent()-&gt;getNamedMetadata(<span class="stringliteral">&quot;llvm.dbg.cu&quot;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(CU_Nodes)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CU_Nodes-&gt;getNumOperands(); i != e; ++i)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; llvm::DICompileUnit *CUNode = SVFUtil::cast&lt;llvm::DICompileUnit&gt;(CU_Nodes-&gt;getOperand(i));</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> (llvm::DIGlobalVariableExpression *GV : CUNode-&gt;getGlobalVariables())</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; llvm::DIGlobalVariable * DGV = GV-&gt;getVariable();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(DGV-&gt;getName() == gvar-&gt;getName())</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ln: &quot;</span> &lt;&lt; DGV-&gt;getLine() &lt;&lt; <span class="stringliteral">&quot; fl: &quot;</span> &lt;&lt; DGV-&gt;getFilename();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast&lt;Function&gt;(val))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(func);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast&lt;BasicBlock&gt;(val))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;basic block: &quot;</span> &lt;&lt; bb-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(bb-&gt;getFirstNonPHI());</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(val))</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;constant data&quot;</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;Can only get source location for instruction, argument, global var, function or constant data.&quot;</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }&quot;</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(rawstr.str()==<span class="stringliteral">&quot;{ }&quot;</span>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
2219
2219
  <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
2220
2220
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
2221
2221
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a86c1c8bdfc1075c07c631525555194d2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">SVF::SVFUtil::getSourceLocOfFunction</a></div><div class="ttdeci">std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00250">SVFUtil.cpp:250</a></div></div>
@@ -2422,8 +2422,8 @@ template&lt;class X , class Y &gt; </div>
2422
2422
 
2423
2423
  <p>Returns a string representation of a hclust method. </p>
2424
2424
 
2425
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00365">365</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
2426
- <div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">switch</span> (method)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024">HCLUST_METHOD_SINGLE</a>:</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;single&quot;</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a>:</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;complete&quot;</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115">HCLUST_METHOD_AVERAGE</a>:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;average&quot;</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;median&quot;</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a>:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;svf-best&quot;</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;SVFUtil::hclustMethodToString: unknown method&quot;</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2425
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00367">367</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
2426
+ <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">switch</span> (method)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024">HCLUST_METHOD_SINGLE</a>:</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;single&quot;</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a>:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;complete&quot;</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115">HCLUST_METHOD_AVERAGE</a>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;average&quot;</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a>:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;median&quot;</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a>:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;svf-best&quot;</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;SVFUtil::hclustMethodToString: unknown method&quot;</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2427
2427
  <div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00069">fastcluster.h:69</a></div></div>
2428
2428
  <div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00073">fastcluster.h:73</a></div></div>
2429
2429
  <div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00075">fastcluster.h:75</a></div></div>
@@ -4731,8 +4731,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
4731
4731
  </div><div class="memdoc">
4732
4732
  <p>Starts an analysis timer. If timeLimit is 0, sets no timer. If an alarm has already been set, does not set another. Returns whether we set a timer or not. </p>
4733
4733
 
4734
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00423">423</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4735
- <div class="fragment"><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;{</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span> (timeLimit == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="comment">// If an alarm is already set, don&#39;t set another. That means this analysis</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="comment">// is part of another which has a time limit.</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">unsigned</span> remainingSeconds = alarm(0);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (remainingSeconds != 0)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// Continue the previous alarm and move on.</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; alarm(remainingSeconds);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; signal(SIGALRM, &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">timeLimitReached</a>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; alarm(timeLimit);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_add4cd21115988f9f5eec12e268ddf1d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">SVF::SVFUtil::timeLimitReached</a></div><div class="ttdeci">void timeLimitReached(int signum)</div><div class="ttdoc">Function to call when alarm for time limit hits. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00413">SVFUtil.cpp:413</a></div></div>
4734
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00425">425</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4735
+ <div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;{</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (timeLimit == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// If an alarm is already set, don&#39;t set another. That means this analysis</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">// is part of another which has a time limit.</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">unsigned</span> remainingSeconds = alarm(0);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span> (remainingSeconds != 0)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">// Continue the previous alarm and move on.</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; alarm(remainingSeconds);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; signal(SIGALRM, &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">timeLimitReached</a>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; alarm(timeLimit);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_add4cd21115988f9f5eec12e268ddf1d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">SVF::SVFUtil::timeLimitReached</a></div><div class="ttdeci">void timeLimitReached(int signum)</div><div class="ttdoc">Function to call when alarm for time limit hits. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00415">SVFUtil.cpp:415</a></div></div>
4736
4736
  </div><!-- fragment -->
4737
4737
  </div>
4738
4738
  </div>
@@ -4753,8 +4753,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
4753
4753
  </div><div class="memdoc">
4754
4754
  <p>Stops an analysis timer. limitTimerSet indicates whether the caller set the timer or not (return value of startLimitTimer). </p>
4755
4755
 
4756
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00444">444</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4757
- <div class="fragment"><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span> (limitTimerSet) alarm(0);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div></div><!-- fragment -->
4756
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00446">446</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4757
+ <div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;{</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span> (limitTimerSet) alarm(0);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div></div><!-- fragment -->
4758
4758
  </div>
4759
4759
  </div>
4760
4760
  <a id="a862eaa4f3d172bc7ffa56406f2d5af92"></a>
@@ -4851,8 +4851,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
4851
4851
 
4852
4852
  <p>Function to call when alarm for time limit hits. </p>
4853
4853
 
4854
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00413">413</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4855
- <div class="fragment"><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; std::cout.flush();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>().flush();</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">// TODO: output does not indicate which time limit is reached.</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// This can be better in the future.</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;WPA: time limit reached\n&quot;</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(101);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;}</div><div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
4854
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00415">415</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4855
+ <div class="fragment"><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;{</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; std::cout.flush();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>().flush();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">// TODO: output does not indicate which time limit is reached.</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// This can be better in the future.</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;WPA: time limit reached\n&quot;</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(101);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div><div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
4856
4856
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
4857
4857
  </div><!-- fragment -->
4858
4858
  </div>
@@ -4874,8 +4874,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
4874
4874
  </div><div class="memdoc">
4875
4875
  <p>return string of an LLVM Value </p>
4876
4876
 
4877
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00388">388</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4878
- <div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; std::string str;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>(value){</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; fun-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *value &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(value);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
4877
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00390">390</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
4878
+ <div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; std::string str;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(value){</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; fun-&gt;getName() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *value &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(value);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
4879
4879
  <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="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
4880
4880
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
4881
4881
  </div><!-- fragment -->