svf-tools 1.0.338 → 1.0.342

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 (201) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  9. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +38 -36
  11. package/SVF-doxygen/html/html/ICFG_8h_source.html +18 -18
  12. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  13. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +4 -4
  17. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/SVFG_8h_source.html +4 -4
  28. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +7 -7
  30. package/SVF-doxygen/html/html/SVFIR_8h_source.html +12 -12
  31. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  32. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
  33. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  34. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  35. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +91 -87
  36. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +20 -19
  38. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
  40. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +48 -46
  41. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  44. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  45. package/SVF-doxygen/html/html/VFG_8h_source.html +4 -4
  46. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
  48. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
  49. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +4 -4
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
  52. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
  53. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
  55. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
  56. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  57. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +4 -4
  59. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +13 -11
  61. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
  62. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +12 -12
  63. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
  64. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  65. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
  68. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +2 -2
  69. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +46 -14
  70. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +2 -2
  71. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +45 -14
  72. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +17 -17
  73. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
  75. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
  76. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +1 -3
  78. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  79. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +35 -35
  80. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
  81. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +30 -30
  82. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +46 -46
  84. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  85. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  86. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  90. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
  93. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  96. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
  97. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
  98. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
  99. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  101. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
  102. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
  103. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
  104. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +21 -21
  105. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
  106. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
  107. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +6 -6
  110. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
  111. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +5 -5
  112. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
  113. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  114. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +4 -4
  115. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +75 -73
  116. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +60 -16
  117. package/SVF-doxygen/html/html/classSVF_1_1RetPN.png +0 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  119. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +8 -8
  120. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +12 -12
  122. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +12 -12
  123. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
  125. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  126. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
  128. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +4 -4
  129. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +22 -21
  130. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +34 -34
  131. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +4 -4
  133. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +4 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +15 -15
  138. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
  139. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
  141. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -14
  142. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  143. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +74 -72
  144. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +60 -16
  145. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.png +0 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
  147. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  148. package/SVF-doxygen/html/html/functions_c.html +18 -13
  149. package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
  150. package/SVF-doxygen/html/html/functions_func_c.html +19 -19
  151. package/SVF-doxygen/html/html/functions_func_i.html +19 -17
  152. package/SVF-doxygen/html/html/functions_i.html +19 -17
  153. package/SVF-doxygen/html/html/functions_m.html +1 -1
  154. package/SVF-doxygen/html/html/functions_n.html +3 -3
  155. package/SVF-doxygen/html/html/functions_o.html +10 -10
  156. package/SVF-doxygen/html/html/functions_p.html +19 -28
  157. package/SVF-doxygen/html/html/functions_s.html +13 -12
  158. package/SVF-doxygen/html/html/functions_t.html +4 -4
  159. package/SVF-doxygen/html/html/functions_v.html +3 -3
  160. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  161. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  162. package/SVF-doxygen/html/html/functions_w.html +5 -9
  163. package/SVF-doxygen/html/html/hierarchy.html +5 -5
  164. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
  165. package/SVF-doxygen/html/html/search/all_10.js +11 -12
  166. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  167. package/SVF-doxygen/html/html/search/all_13.js +6 -5
  168. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  169. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  170. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  171. package/SVF-doxygen/html/html/search/all_3.js +3 -2
  172. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  173. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  174. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  175. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  176. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  177. package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
  178. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  179. package/SVF-doxygen/html/html/search/functions_8.js +4 -4
  180. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  181. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  182. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  183. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  184. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  185. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
  186. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  187. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  188. package/include/MemoryModel/SVFIR.h +1 -1
  189. package/include/MemoryModel/SVFVariables.h +25 -4
  190. package/include/MemoryModel/SymbolTableInfo.h +17 -11
  191. package/include/Util/Options.h +1 -1
  192. package/lib/Graphs/ICFG.cpp +39 -27
  193. package/lib/MSSA/MemSSA.cpp +1 -1
  194. package/lib/MemoryModel/SVFStatements.cpp +53 -49
  195. package/lib/MemoryModel/SVFVariables.cpp +10 -10
  196. package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
  197. package/lib/SVF-FE/SymbolTableBuilder.cpp +10 -10
  198. package/lib/Util/Options.cpp +3 -3
  199. package/lib/Util/PTAStat.cpp +3 -3
  200. package/lib/Util/SVFUtil.cpp +2 -0
  201. package/package.json +1 -1
@@ -112,13 +112,11 @@ $(function() {
112
112
  </li>
113
113
  <li>SCC
114
114
  : <a class="el" href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SVF::MRGenerator</a>
115
+ , <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver&lt; GraphType &gt;</a>
115
116
  </li>
116
117
  <li>scc
117
118
  : <a class="el" href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">SVF::WPASolver&lt; GraphType &gt;</a>
118
119
  </li>
119
- <li>SCC
120
- : <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver&lt; GraphType &gt;</a>
121
- </li>
122
120
  <li>sccCandidates
123
121
  : <a class="el" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">SVF::AndersenSCD</a>
124
122
  </li>
@@ -504,6 +502,9 @@ $(function() {
504
502
  <li>ShowHiddenNode
505
503
  : <a class="el" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">SVF::Options</a>
506
504
  </li>
505
+ <li>ShowSVFIRValue
506
+ : <a class="el" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options</a>
507
+ </li>
507
508
  <li>siftMaxSwap
508
509
  : <a class="el" href="structDdManager.html#a6521157f9436fb77fcc6327b2035e422">DdManager</a>
509
510
  </li>
@@ -635,7 +636,7 @@ $(function() {
635
636
  : <a class="el" href="classSVF_1_1PCG.html#a8dcd94e8f996fdb2197159ea95226817">SVF::PCG</a>
636
637
  </li>
637
638
  <li>split()
638
- : <a class="el" href="classSVF_1_1LockResultValidator.html#ad26006e14c866d694bc6e2ebaa41ded9">SVF::LockResultValidator</a>
639
+ : <a class="el" href="classSVF_1_1LockResultValidator.html#ab8a6935e1ea6f99d60ead862a7b1782f">SVF::LockResultValidator</a>
639
640
  , <a class="el" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator</a>
640
641
  </li>
641
642
  <li>src
@@ -660,7 +661,7 @@ $(function() {
660
661
  : <a class="el" href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SVF::MemSSA</a>
661
662
  </li>
662
663
  <li>stack
663
- : <a class="el" href="structDdGen.html#a50762b8a4bc39e9094a414d41da2613b">DdGen</a>
664
+ : <a class="el" href="structDdGen.html#af405420fc6648aa758b180a7a1b5f557">DdGen</a>
664
665
  , <a class="el" href="structDdManager.html#af99ce33d5dcd3dcf67f10bd7da6a5aa5">DdManager</a>
665
666
  </li>
666
667
  <li>STACK_OBJ
@@ -758,7 +759,7 @@ $(function() {
758
759
  : <a class="el" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">SVF::MemSSA</a>
759
760
  </li>
760
761
  <li>StoreCGEdge()
761
- : <a class="el" href="classSVF_1_1StoreCGEdge.html#a667b277ef845b866d3b11a7fbfce0815">SVF::StoreCGEdge</a>
762
+ : <a class="el" href="classSVF_1_1StoreCGEdge.html#a0f873b0be0ac726e412171119c5b3a50">SVF::StoreCGEdge</a>
762
763
  </li>
763
764
  <li>StoreCGEdgeSet
764
765
  : <a class="el" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">SVF::ConstraintGraph</a>
@@ -800,7 +801,7 @@ $(function() {
800
801
  : <a class="el" href="classSVF_1_1MTAAnnotator.html#a37df9f2416685c535be2faa01e162f3a">SVF::MTAAnnotator</a>
801
802
  </li>
802
803
  <li>StoreStmt()
803
- : <a class="el" href="classSVF_1_1StoreStmt.html#a22bc2f9290dfd7ade13ba63cc983ac42">SVF::StoreStmt</a>
804
+ : <a class="el" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb">SVF::StoreStmt</a>
804
805
  </li>
805
806
  <li>StoresToMRsMap
806
807
  : <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
@@ -827,7 +828,7 @@ $(function() {
827
828
  : <a class="el" href="classSVF_1_1DDAVFSolver.html#accaacd2dd680f92ff83cfe75eef6ffab">SVF::DDAVFSolver&lt; CVar, CPtSet, DPIm &gt;</a>
828
829
  </li>
829
830
  <li>StoreVFGNode()
830
- : <a class="el" href="classSVF_1_1StoreVFGNode.html#ab4b9182cb0f2ef7dfc1e15789a311ecd">SVF::StoreVFGNode</a>
831
+ : <a class="el" href="classSVF_1_1StoreVFGNode.html#a496607cda1cc26a8753d6a7af620e95a">SVF::StoreVFGNode</a>
831
832
  </li>
832
833
  <li>Strategy
833
834
  : <a class="el" href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator</a>
@@ -882,7 +883,7 @@ $(function() {
882
883
  : <a class="el" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860ea4582a3728eda9f58c4e7d069e4fec577">SVF::SVFValue</a>
883
884
  </li>
884
885
  <li>SVFFunction()
885
- : <a class="el" href="classSVF_1_1SVFFunction.html#aed73a0604a9fc5b6560ce87cfeaa3944">SVF::SVFFunction</a>
886
+ : <a class="el" href="classSVF_1_1SVFFunction.html#ae7a55d86a87088f7d70254980e4325b3">SVF::SVFFunction</a>
886
887
  </li>
887
888
  <li>svfg
888
889
  : <a class="el" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive</a>
@@ -955,12 +956,12 @@ $(function() {
955
956
  : <a class="el" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice</a>
956
957
  , <a class="el" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA</a>
957
958
  </li>
958
- <li>SVFGNodeToCondMap
959
- : <a class="el" href="classSVF_1_1ProgSlice.html#ae16157bd0b66dfb3cc18b778a745ed00">SVF::ProgSlice</a>
960
- </li>
961
959
  <li>svfgNodeToCondMap
962
960
  : <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
963
961
  </li>
962
+ <li>SVFGNodeToCondMap
963
+ : <a class="el" href="classSVF_1_1ProgSlice.html#ae16157bd0b66dfb3cc18b778a745ed00">SVF::ProgSlice</a>
964
+ </li>
964
965
  <li>SVFGNodeToCSIDMap
965
966
  : <a class="el" href="classSVF_1_1LeakChecker.html#a47a79514e1fdc402453b864407aacd6a">SVF::LeakChecker</a>
966
967
  </li>
@@ -196,18 +196,18 @@ $(function() {
196
196
  , <a class="el" href="classSVF_1_1ThreadAPI.html#a2faebd2e481362b11ccce4256f81c32d">SVF::ThreadAPI</a>
197
197
  , <a class="el" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph</a>
198
198
  </li>
199
- <li>TDAPIMap
200
- : <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a3115116dc595c4b157f2cfc0a6ea89fc">SVF::SaberCheckerAPI</a>
201
- </li>
202
199
  <li>tdAPIMap
203
200
  : <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a62471599cba4bde20d2696a91fa064ec">SVF::SaberCheckerAPI</a>
204
201
  </li>
205
202
  <li>TDAPIMap
206
- : <a class="el" href="classSVF_1_1ThreadAPI.html#ae9721b91bd60d27ae3dd48cb058301b2">SVF::ThreadAPI</a>
203
+ : <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a3115116dc595c4b157f2cfc0a6ea89fc">SVF::SaberCheckerAPI</a>
207
204
  </li>
208
205
  <li>tdAPIMap
209
206
  : <a class="el" href="classSVF_1_1ThreadAPI.html#a4277abaae24b43d83470054c247f479c">SVF::ThreadAPI</a>
210
207
  </li>
208
+ <li>TDAPIMap
209
+ : <a class="el" href="classSVF_1_1ThreadAPI.html#ae9721b91bd60d27ae3dd48cb058301b2">SVF::ThreadAPI</a>
210
+ </li>
211
211
  <li>TDDead
212
212
  : <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis</a>
213
213
  </li>
@@ -141,12 +141,12 @@ $(function() {
141
141
  <li>ValVar()
142
142
  : <a class="el" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb">SVF::ValVar</a>
143
143
  </li>
144
- <li>Var2LabelMap
145
- : <a class="el" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt</a>
146
- </li>
147
144
  <li>var2LabelMap
148
145
  : <a class="el" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">SVF::SVFStmt</a>
149
146
  </li>
147
+ <li>Var2LabelMap
148
+ : <a class="el" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt</a>
149
+ </li>
150
150
  <li>VAR_ARRAY_OBJ
151
151
  : <a class="el" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c">SVF::ObjTypeInfo</a>
152
152
  </li>
@@ -73,9 +73,6 @@ $(function() {
73
73
  <li>PAGDotGraph
74
74
  : <a class="el" href="classSVF_1_1Options.html#a3a20311c732fb391332ae0ee1cb450a0">SVF::Options</a>
75
75
  </li>
76
- <li>PAGDotGraphShorter
77
- : <a class="el" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options</a>
78
- </li>
79
76
  <li>pagEdge
80
77
  : <a class="el" href="classSVF_1_1StmtVFGNode.html#ab5f48de8258f92bb7b9d411e178beb49">SVF::StmtVFGNode</a>
81
78
  </li>
@@ -130,6 +130,9 @@ $(function() {
130
130
  <li>ShowHiddenNode
131
131
  : <a class="el" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">SVF::Options</a>
132
132
  </li>
133
+ <li>ShowSVFIRValue
134
+ : <a class="el" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options</a>
135
+ </li>
133
136
  <li>siftMaxSwap
134
137
  : <a class="el" href="structDdManager.html#a6521157f9436fb77fcc6327b2035e422">DdManager</a>
135
138
  </li>
@@ -79,14 +79,12 @@ $(function() {
79
79
  <li>WordSize
80
80
  : <a class="el" href="classSVF_1_1CoreBitVector.html#a63f5e4a36359ae62401e5f8dfecb86a3">SVF::CoreBitVector</a>
81
81
  </li>
82
- <li>WorkList
83
- : <a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">SVF::CFLSolver&lt; GraphType, DPIm &gt;</a>
84
- </li>
85
82
  <li>worklist
86
83
  : <a class="el" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver&lt; GraphType, DPIm &gt;</a>
87
84
  </li>
88
85
  <li>WorkList
89
- : <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
86
+ : <a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">SVF::CFLSolver&lt; GraphType, DPIm &gt;</a>
87
+ , <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
90
88
  , <a class="el" href="classSVF_1_1CHGraph.html#af1b638faf888898cdf168c25e008ab12">SVF::CHGraph</a>
91
89
  , <a class="el" href="classSVF_1_1ConstraintGraph.html#ae80fc7e5d68e103d8f3a82bc9ffb0f00">SVF::ConstraintGraph</a>
92
90
  , <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
@@ -94,16 +92,14 @@ $(function() {
94
92
  , <a class="el" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator</a>
95
93
  , <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder</a>
96
94
  , <a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA</a>
95
+ , <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
97
96
  </li>
98
97
  <li>worklist
99
98
  : <a class="el" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT</a>
99
+ , <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver&lt; GraphType &gt;</a>
100
100
  </li>
101
101
  <li>WorkList
102
- : <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
103
- , <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver&lt; GraphType &gt;</a>
104
- </li>
105
- <li>worklist
106
- : <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver&lt; GraphType &gt;</a>
102
+ : <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver&lt; GraphType &gt;</a>
107
103
  </li>
108
104
  <li>WorkStack
109
105
  : <a class="el" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e">SVF::CSC</a>
@@ -259,11 +259,11 @@ $(function() {
259
259
  <tr id="row_81_3_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1CloneFIObjVar.html" target="_self">SVF::CloneFIObjVar</a></td><td class="desc"></td></tr>
260
260
  <tr id="row_81_3_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_81_3_0_2_" class="arrow" onclick="toggleFolder('81_3_0_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1GepObjVar.html" target="_self">SVF::GepObjVar</a></td><td class="desc"></td></tr>
261
261
  <tr id="row_81_3_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1CloneGepObjVar.html" target="_self">SVF::CloneGepObjVar</a></td><td class="desc"></td></tr>
262
- <tr id="row_81_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1RetPN.html" target="_self">SVF::RetPN</a></td><td class="desc"></td></tr>
263
- <tr id="row_81_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_81_3_2_" class="arrow" onclick="toggleFolder('81_3_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1ValVar.html" target="_self">SVF::ValVar</a></td><td class="desc"></td></tr>
264
- <tr id="row_81_3_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1DummyValVar.html" target="_self">SVF::DummyValVar</a></td><td class="desc"></td></tr>
265
- <tr id="row_81_3_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1GepValVar.html" target="_self">SVF::GepValVar</a></td><td class="desc"></td></tr>
266
- <tr id="row_81_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1VarArgPN.html" target="_self">SVF::VarArgPN</a></td><td class="desc"></td></tr>
262
+ <tr id="row_81_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_81_3_1_" class="arrow" onclick="toggleFolder('81_3_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1ValVar.html" target="_self">SVF::ValVar</a></td><td class="desc"></td></tr>
263
+ <tr id="row_81_3_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1DummyValVar.html" target="_self">SVF::DummyValVar</a></td><td class="desc"></td></tr>
264
+ <tr id="row_81_3_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1GepValVar.html" target="_self">SVF::GepValVar</a></td><td class="desc"></td></tr>
265
+ <tr id="row_81_3_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1RetPN.html" target="_self">SVF::RetPN</a></td><td class="desc"></td></tr>
266
+ <tr id="row_81_3_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1VarArgPN.html" target="_self">SVF::VarArgPN</a></td><td class="desc"></td></tr>
267
267
  <tr id="row_81_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1TCTNode.html" target="_self">SVF::TCTNode</a></td><td class="desc"></td></tr>
268
268
  <tr id="row_81_5_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_81_5_" class="arrow" onclick="toggleFolder('81_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1VFGNode.html" target="_self">SVF::VFGNode</a></td><td class="desc"></td></tr>
269
269
  <tr id="row_81_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_81_5_0_" class="arrow" onclick="toggleFolder('81_5_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1ArgumentVFGNode.html" target="_self">SVF::ArgumentVFGNode</a></td><td class="desc"></td></tr>
@@ -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 -->