svf-tools 1.0.604 → 1.0.606

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 (136) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/Casting_8h.html +3 -0
  10. package/SVF-doxygen/html/html/Casting_8h_source.html +22 -22
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +15 -15
  13. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  14. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +82 -74
  18. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +14 -14
  19. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +9 -9
  20. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -21
  22. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +18 -18
  23. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +33 -38
  31. package/SVF-doxygen/html/html/MHP_8h_source.html +22 -22
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +12 -11
  38. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +11 -11
  39. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +8 -1
  43. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +11 -11
  44. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +8 -8
  45. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  52. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  53. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
  55. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +2 -2
  58. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +19 -19
  59. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +11 -11
  60. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +228 -220
  62. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -2
  63. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
  64. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +64 -58
  65. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +30 -38
  67. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +2 -2
  70. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +67 -83
  73. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
  76. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +53 -53
  77. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  78. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +5 -5
  81. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +46 -33
  83. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +8 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +32 -32
  87. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  88. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
  92. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  93. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +2 -2
  94. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +7 -7
  95. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +50 -17
  96. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +2 -2
  97. package/SVF-doxygen/html/html/namespacemembers_func_i.html +7 -7
  98. package/SVF-doxygen/html/html/namespacemembers_i.html +8 -8
  99. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  100. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  101. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +3 -3
  102. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  103. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  104. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  105. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  106. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  107. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  108. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  109. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  110. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  111. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  112. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  113. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  114. package/include/DDA/DDAVFSolver.h +4 -8
  115. package/include/Graphs/SVFGOPT.h +2 -2
  116. package/include/MTA/MTAResultValidator.h +1 -1
  117. package/include/Util/Casting.h +7 -0
  118. package/lib/CFL/CFLStat.cpp +1 -1
  119. package/lib/DDA/ContextDDA.cpp +1 -1
  120. package/lib/Graphs/ConsG.cpp +2 -2
  121. package/lib/Graphs/SVFGOPT.cpp +15 -17
  122. package/lib/MTA/FSMPTA.cpp +7 -6
  123. package/lib/MTA/LockAnalysis.cpp +1 -1
  124. package/lib/MTA/MHP.cpp +216 -229
  125. package/lib/MemoryModel/LocationSet.cpp +1 -1
  126. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  127. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  128. package/lib/SABER/SrcSnkDDA.cpp +3 -3
  129. package/lib/SVF-LLVM/LLVMModule.cpp +1 -1
  130. package/lib/SVF-LLVM/LLVMUtil.cpp +1 -1
  131. package/lib/SVF-LLVM/SVFIRBuilder.cpp +4 -4
  132. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +3 -2
  133. package/lib/SVFIR/SymbolTableInfo.cpp +1 -1
  134. package/lib/WPA/AndersenSFR.cpp +1 -1
  135. package/lib/WPA/FlowSensitive.cpp +23 -22
  136. package/package.json +1 -1
@@ -366,7 +366,7 @@ Functions</h2></td></tr>
366
366
  </div><div class="memdoc">
367
367
 
368
368
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00077">77</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
369
- <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// FIXME: do we need to strip-off the casts here to discover more library functions</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(cs-&gt;getCalledOperand()-&gt;stripPointerCasts());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(callee)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">getDefFunForMultipleModule</a>(callee);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
369
+ <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// FIXME: do we need to strip-off the casts here to discover more library functions</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(cs-&gt;getCalledOperand()-&gt;stripPointerCasts());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(callee)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">getDefFunForMultipleModule</a>(callee);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
370
370
  <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#l00059">BasicTypes.h:59</a></div></div>
371
371
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00061">LLVMUtil.h:61</a></div></div>
372
372
  </div><!-- fragment -->
@@ -591,7 +591,7 @@ Functions</h2></td></tr>
591
591
  <p>Return LLVM function if this value is. </p>
592
592
 
593
593
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00088">88</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
594
- <div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(val-&gt;stripPointerCasts());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
594
+ <div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(val-&gt;stripPointerCasts());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
595
595
  <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#l00059">BasicTypes.h:59</a></div></div>
596
596
  </div><!-- fragment -->
597
597
  </div>
@@ -835,7 +835,7 @@ Functions</h2></td></tr>
835
835
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00133">133</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
836
836
  <div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *refType = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> SVFInstruction* svfcall = LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFInstruction(cs);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; CallSite svfcs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(svfcall);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Case 1: heap object held by *argument, we should get its element type.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVFUtil::isHeapAllocExtCallViaArg</a>(svfcs))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">int</span> argPos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVFUtil::getHeapAllocHoldingArgPosition</a>(svfcs);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* arg = cs-&gt;getArgOperand(argPos);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> *argType = SVFUtil::dyn_cast&lt;PointerType&gt;(arg-&gt;getType()))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(argType));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Case 2: heap/static object held by return value.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; assert((<a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(svfcs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(svfcs))</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; &amp;&amp; <span class="stringliteral">&quot;Must be heap alloc via ret, or static allocation site&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; refType = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(cs-&gt;getType());</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; assert(refType &amp;&amp; <span class="stringliteral">&quot;Allocated object must be held by a pointer-typed value.&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> refType;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00194">SVFUtil.h:194</a></div></div>
837
837
  <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
838
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
838
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
839
839
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00424">SVFUtil.h:424</a></div></div>
840
840
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00435">SVFUtil.h:435</a></div></div>
841
841
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00493">SVFUtil.h:493</a></div></div>
@@ -955,7 +955,7 @@ Functions</h2></td></tr>
955
955
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00194">SVFUtil.h:194</a></div></div>
956
956
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a0095d23a9c9d5d62ec4a23c56824b5f0"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a0095d23a9c9d5d62ec4a23c56824b5f0">SVF::LLVMUtil::getLLVMCallSite</a></div><div class="ttdeci">const CallBase * getLLVMCallSite(const Value *value)</div><div class="ttdoc">Return LLVM callsite given a value. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00071">LLVMUtil.h:71</a></div></div>
957
957
  <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
958
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
958
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
959
959
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_a837d19c740902c419206287bdb21273b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a837d19c740902c419206287bdb21273b">SVF::LLVMUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdoc">Return the bitcast instruction which is val&amp;#39;s only use site, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00334">LLVMUtil.cpp:334</a></div></div>
960
960
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
961
961
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aedfa6e9216c6c788c26aef1967689b76"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">SVF::SVFUtil::isHeapAllocExtCallViaArg</a></div><div class="ttdeci">bool isHeapAllocExtCallViaArg(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00424">SVFUtil.h:424</a></div></div>
@@ -1046,7 +1046,7 @@ Functions</h2></td></tr>
1046
1046
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00334">334</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1047
1047
  <div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a> * <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>&gt;(val-&gt;getType());</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; assert(type &amp;&amp; <span class="stringliteral">&quot;this value should be a pointer type!&quot;</span>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a> *IT = SVFUtil::dyn_cast&lt;IntegerType&gt;(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">getPtrElementType</a>(type)))</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; <span class="keywordflow">if</span> (IT-&gt;getBitWidth() == 8 &amp;&amp; val-&gt;getNumUses()==1)</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &amp;*val-&gt;use_begin();</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">BitCastInst</a>&gt;(u-&gt;getUser());</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; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00046">BasicTypes.h:46</a></div></div>
1048
1048
  <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
1049
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
1049
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
1050
1050
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
1051
1051
  <div class="ttc" id="namespaceSVF_html_afc50da46a6ea7c2cf61683bbec4d7c8d"><div class="ttname"><a href="namespaceSVF.html#afc50da46a6ea7c2cf61683bbec4d7c8d">SVF::BitCastInst</a></div><div class="ttdeci">llvm::BitCastInst BitCastInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
1052
1052
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00121">LLVMUtil.h:121</a></div></div>
@@ -1532,7 +1532,7 @@ Functions</h2></td></tr>
1532
1532
  <p>Check whether this value is a black hole. </p>
1533
1533
 
1534
1534
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8h_source.html#l00116">116</a> of file <a class="el" href="LLVMUtil_8h_source.html">LLVMUtil.h</a>.</p>
1535
- <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">ConstantPointerNull</a>&gt;(val);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
1535
+ <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">ConstantPointerNull</a>&gt;(val);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
1536
1536
  <div class="ttc" id="namespaceSVF_html_a90f6c91ba7a3c31c84b5c25277d83fca"><div class="ttname"><a href="namespaceSVF.html#a90f6c91ba7a3c31c84b5c25277d83fca">SVF::ConstantPointerNull</a></div><div class="ttdeci">llvm::ConstantPointerNull ConstantPointerNull</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00101">BasicTypes.h:101</a></div></div>
1537
1537
  </div><!-- fragment -->
1538
1538
  </div>
@@ -1557,7 +1557,7 @@ Functions</h2></td></tr>
1557
1557
  <p>A value represents an object if it is 1) function, 2) global 3) stack 4) heap </p>
1558
1558
 
1559
1559
  <p class="definition">Definition at line <a class="el" href="LLVMUtil_8cpp_source.html#l00044">44</a> of file <a class="el" href="LLVMUtil_8cpp_source.html">LLVMUtil.cpp</a>.</p>
1560
- <div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">bool</span> createobj = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFInstruction(SVFUtil::cast&lt;Instruction&gt;(ref))) )</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFInstruction(SVFUtil::cast&lt;Instruction&gt;(ref))))</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(ref))</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Function&gt;(ref) || SVFUtil::isa&lt;AllocaInst&gt;(ref) )</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> createobj;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00435">SVFUtil.h:435</a></div></div>
1560
+ <div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">bool</span> createobj = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVFUtil::isStaticExtCall</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFInstruction(SVFUtil::cast&lt;Instruction&gt;(ref))) )</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Instruction&gt;(ref) &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVFUtil::isHeapAllocExtCallViaRet</a>(LLVMModuleSet::getLLVMModuleSet()-&gt;getSVFInstruction(SVFUtil::cast&lt;Instruction&gt;(ref))))</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(ref))</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;Function, AllocaInst&gt;(ref))</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; createobj = <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> createobj;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab2064cb70c76f399ce115f2621adea35"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">SVF::SVFUtil::isHeapAllocExtCallViaRet</a></div><div class="ttdeci">bool isHeapAllocExtCallViaRet(const CallSite cs)</div><div class="ttdoc">interfaces to be used externally </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00435">SVFUtil.h:435</a></div></div>
1561
1561
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ae62938f722543d6d7fc201b685be1abf"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil::isStaticExtCall</a></div><div class="ttdeci">bool isStaticExtCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00493">SVFUtil.h:493</a></div></div>
1562
1562
  </div><!-- fragment -->
1563
1563
  </div>
@@ -152,6 +152,9 @@ Functions</h2></td></tr>
152
152
  <tr class="memitem:a5c8cbc986cccb9d84f87aae162df3737"><td class="memTemplParams" colspan="2">template&lt;class X , class Y &gt; </td></tr>
153
153
  <tr class="memitem:a5c8cbc986cccb9d84f87aae162df3737"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="Casting_8h.html#a8ce3b3743bf423cf00a9eb18a3f0f139">LLVM_NODISCARD</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">isa</a> (const Y &amp;Val)</td></tr>
154
154
  <tr class="separator:a5c8cbc986cccb9d84f87aae162df3737"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
+ <tr class="memitem:a13729076054a2977670b05a338a6763d"><td class="memTemplParams" colspan="2">template&lt;typename First , typename Second , typename... Rest, typename Y &gt; </td></tr>
156
+ <tr class="memitem:a13729076054a2977670b05a338a6763d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="Casting_8h.html#a8ce3b3743bf423cf00a9eb18a3f0f139">LLVM_NODISCARD</a> bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a13729076054a2977670b05a338a6763d">isa</a> (const Y &amp;Val)</td></tr>
157
+ <tr class="separator:a13729076054a2977670b05a338a6763d"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
158
  <tr class="memitem:a3ddf7041e685da8ede81cd773dd47761"><td class="memTemplParams" colspan="2">template&lt;class X , class Y &gt; </td></tr>
156
159
  <tr class="memitem:a3ddf7041e685da8ede81cd773dd47761"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if_t&lt;!<a class="el" href="structSVF_1_1SVFUtil_1_1is__simple__type.html">is_simple_type</a>&lt; Y &gt;::value, typename <a class="el" href="structSVF_1_1SVFUtil_1_1cast__retty.html">cast_retty</a>&lt; X, const Y &gt;::ret_type &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a3ddf7041e685da8ede81cd773dd47761">cast</a> (const Y &amp;Val)</td></tr>
157
160
  <tr class="separator:a3ddf7041e685da8ede81cd773dd47761"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -570,8 +573,8 @@ template&lt;class X , class Y &gt; </div>
570
573
  </table>
571
574
  </div><div class="memdoc">
572
575
 
573
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00353">353</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
574
- <div class="fragment"><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;{</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; X, <span class="keyword">const</span> Y, <span class="keyword">typename</span> simplify_type&lt;const Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div></div><!-- fragment -->
576
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00360">360</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
577
+ <div class="fragment"><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; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; X, <span class="keyword">const</span> Y, <span class="keyword">typename</span> simplify_type&lt;const Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;}</div></div><!-- fragment -->
575
578
  </div>
576
579
  </div>
577
580
  <a id="a406dd9baf2ce66235d482fd6c6121b2c"></a>
@@ -600,8 +603,8 @@ template&lt;class X , class Y &gt; </div>
600
603
  </table>
601
604
  </div><div class="memdoc">
602
605
 
603
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00361">361</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
604
- <div class="fragment"><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;X, Y,</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">typename</span> simplify_type&lt;Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;}</div></div><!-- fragment -->
606
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00368">368</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
607
+ <div class="fragment"><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;X, Y,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">typename</span> simplify_type&lt;Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;}</div></div><!-- fragment -->
605
608
  </div>
606
609
  </div>
607
610
  <a id="acc2419a55c0427571f11ad14db2fe481"></a>
@@ -630,8 +633,8 @@ template&lt;class X , class Y &gt; </div>
630
633
  </table>
631
634
  </div><div class="memdoc">
632
635
 
633
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00369">369</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
634
- <div class="fragment"><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; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;X, Y*,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">typename</span> simplify_type&lt;Y*&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;}</div></div><!-- fragment -->
636
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00376">376</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
637
+ <div class="fragment"><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;{</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;X, Y*,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">typename</span> simplify_type&lt;Y*&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}</div></div><!-- fragment -->
635
638
  </div>
636
639
  </div>
637
640
  <a id="af3ca049b4ce83c874e231f5e13bf36a8"></a>
@@ -660,8 +663,8 @@ template&lt;class X , class Y &gt; </div>
660
663
  </table>
661
664
  </div><div class="memdoc">
662
665
 
663
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00378">378</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
664
- <div class="fragment"><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val.get()) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">using</span> ret_type = <span class="keyword">typename</span> cast_retty&lt;X, std::unique_ptr&lt;Y&gt;&gt;::ret_type;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span> ret_type(</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; cast_convert_val&lt;X, Y *, <span class="keyword">typename</span> simplify_type&lt;Y *&gt;::SimpleType&gt;::doit(</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; Val.release()));</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</div></div><!-- fragment -->
666
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00385">385</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
667
+ <div class="fragment"><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;{</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; assert(SVFUtil::isa&lt;X&gt;(Val.get()) &amp;&amp; <span class="stringliteral">&quot;cast&lt;Ty&gt;() argument of incompatible type!&quot;</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">using</span> ret_type = <span class="keyword">typename</span> cast_retty&lt;X, std::unique_ptr&lt;Y&gt;&gt;::ret_type;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> ret_type(</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; cast_convert_val&lt;X, Y *, <span class="keyword">typename</span> simplify_type&lt;Y *&gt;::SimpleType&gt;::doit(</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; Val.release()));</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div></div><!-- fragment -->
665
668
  </div>
666
669
  </div>
667
670
  <a id="a8f749354b7e882ef3e5bf5081fa715b5"></a>
@@ -952,8 +955,8 @@ template&lt;class X , class Y &gt; </div>
952
955
  </table>
953
956
  </div><div class="memdoc">
954
957
 
955
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00398">398</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
956
- <div class="fragment"><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> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}</div></div><!-- fragment -->
958
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00405">405</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
959
+ <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div></div><!-- fragment -->
957
960
  </div>
958
961
  </div>
959
962
  <a id="a52d852ba8fa569e858565b3bba403656"></a>
@@ -982,8 +985,8 @@ template&lt;class X , class Y &gt; </div>
982
985
  </table>
983
986
  </div><div class="memdoc">
984
987
 
985
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00404">404</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
986
- <div class="fragment"><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;{</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;}</div></div><!-- fragment -->
988
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00411">411</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
989
+ <div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;}</div></div><!-- fragment -->
987
990
  </div>
988
991
  </div>
989
992
  <a id="a105c5c5e97d56533fb2b3ba7a0bc59f3"></a>
@@ -1012,8 +1015,8 @@ template&lt;class X , class Y &gt; </div>
1012
1015
  </table>
1013
1016
  </div><div class="memdoc">
1014
1017
 
1015
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00410">410</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
1016
- <div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;}</div></div><!-- fragment -->
1018
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00417">417</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
1019
+ <div class="fragment"><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;{</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;X&gt;(Val) ? SVFUtil::cast&lt;X&gt;(Val) : nullptr;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;}</div></div><!-- fragment -->
1017
1020
  </div>
1018
1021
  </div>
1019
1022
  <a id="a5d4bb92f5df30417f414397f8e58cf01"></a>
@@ -1753,7 +1756,7 @@ template&lt;typename Key , typename KeySet &gt; </div>
1753
1756
  </div>
1754
1757
  </div>
1755
1758
  <a id="a5c8cbc986cccb9d84f87aae162df3737"></a>
1756
- <h2 class="memtitle"><span class="permalink"><a href="#a5c8cbc986cccb9d84f87aae162df3737">&#9670;&nbsp;</a></span>isa()</h2>
1759
+ <h2 class="memtitle"><span class="permalink"><a href="#a5c8cbc986cccb9d84f87aae162df3737">&#9670;&nbsp;</a></span>isa() <span class="overload">[1/2]</span></h2>
1757
1760
 
1758
1761
  <div class="memitem">
1759
1762
  <div class="memproto">
@@ -1778,8 +1781,38 @@ template&lt;class X , class Y &gt; </div>
1778
1781
  </table>
1779
1782
  </div><div class="memdoc">
1780
1783
 
1781
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00240">240</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
1782
- <div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> isa_impl_wrap&lt;X, <span class="keyword">const</span> Y,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">typename</span> simplify_type&lt;const Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div></div><!-- fragment -->
1784
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00241">241</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
1785
+ <div class="fragment"><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> isa_impl_wrap&lt;X, <span class="keyword">const</span> Y,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">typename</span> simplify_type&lt;const Y&gt;::SimpleType&gt;::doit(Val);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div></div><!-- fragment -->
1786
+ </div>
1787
+ </div>
1788
+ <a id="a13729076054a2977670b05a338a6763d"></a>
1789
+ <h2 class="memtitle"><span class="permalink"><a href="#a13729076054a2977670b05a338a6763d">&#9670;&nbsp;</a></span>isa() <span class="overload">[2/2]</span></h2>
1790
+
1791
+ <div class="memitem">
1792
+ <div class="memproto">
1793
+ <div class="memtemplate">
1794
+ template&lt;typename First , typename Second , typename... Rest, typename Y &gt; </div>
1795
+ <table class="mlabels">
1796
+ <tr>
1797
+ <td class="mlabels-left">
1798
+ <table class="memname">
1799
+ <tr>
1800
+ <td class="memname"><a class="el" href="Casting_8h.html#a8ce3b3743bf423cf00a9eb18a3f0f139">LLVM_NODISCARD</a> bool SVF::SVFUtil::isa </td>
1801
+ <td>(</td>
1802
+ <td class="paramtype">const Y &amp;&#160;</td>
1803
+ <td class="paramname"><em>Val</em></td><td>)</td>
1804
+ <td></td>
1805
+ </tr>
1806
+ </table>
1807
+ </td>
1808
+ <td class="mlabels-right">
1809
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
1810
+ </tr>
1811
+ </table>
1812
+ </div><div class="memdoc">
1813
+
1814
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00248">248</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
1815
+ <div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;First&gt;(Val) || SVFUtil::isa&lt;Second, Rest...&gt;(Val);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div></div><!-- fragment -->
1783
1816
  </div>
1784
1817
  </div>
1785
1818
  <a id="a2c47299fdf0ca0d08578ded6348f77c2"></a>
@@ -317,7 +317,7 @@ Functions</h2></td></tr>
317
317
 
318
318
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00392">392</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
319
319
  <div class="fragment"><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;{</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs-&gt;getCalledOperand());</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; assert(vfuncloadinst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = vfuncloadinst-&gt;getPointerOperand();</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; User::const_op_iterator oi = vfuncptrgepinst-&gt;idx_begin();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* idx = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(oi-&gt;get());</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> idx_value;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;vcall gep idx not constantint\n&quot;</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; idx_value = 0;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; idx_value = (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)idx-&gt;getSExtValue();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> idx_value;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
320
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
320
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
321
321
  <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
322
322
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
323
323
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00135">BasicTypes.h:135</a></div></div>
@@ -363,7 +363,7 @@ Functions</h2></td></tr>
363
363
  </div><div class="memdoc">
364
364
 
365
365
  <p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00381">381</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
366
- <div class="fragment"><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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs-&gt;getCalledOperand());</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; assert(loadInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *gepInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; assert(gepInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = gepInst-&gt;getPointerOperand();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> vtbl;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00398">Casting.h:398</a></div></div>
366
+ <div class="fragment"><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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>&gt;(cs-&gt;getCalledOperand());</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; assert(loadInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vfuncptr = loadInst-&gt;getPointerOperand();</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *gepInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>&gt;(vfuncptr);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; assert(gepInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* vtbl = gepInst-&gt;getPointerOperand();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> vtbl;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
367
367
  <div class="ttc" id="namespaceSVF_html_ac4e93e1fec646ff222940a663843921b"><div class="ttname"><a href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">SVF::GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00135">BasicTypes.h:135</a></div></div>
368
368
  <div class="ttc" id="namespaceSVF_html_a5a6e8ab900d5cd17ef72661006a7fbe0"><div class="ttname"><a href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">SVF::LoadInst</a></div><div class="ttdeci">llvm::LoadInst LoadInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
369
369
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00056">BasicTypes.h:56</a></div></div>
@@ -93,7 +93,7 @@ $(function() {
93
93
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#abf4e75ba6236136399d45c85be2328fe">SVF::LLVMUtil</a>
94
94
  </li>
95
95
  <li>isCallSite()
96
- : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a5a7dc8680a9714e08b01dd339b85bb20">SVF::LLVMUtil</a>
96
+ : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#aeaa116fd9718c8b31f30d3fe62bb6403">SVF::LLVMUtil</a>
97
97
  , <a class="el" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVF::SVFUtil</a>
98
98
  </li>
99
99
  <li>isCastConstantExpr()
@@ -124,7 +124,7 @@ $(function() {
124
124
  : <a class="el" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil</a>
125
125
  </li>
126
126
  <li>isExtCall()
127
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil</a>
127
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">SVF::SVFUtil</a>
128
128
  </li>
129
129
  <li>isGepConstantExpr()
130
130
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#ab5fc50624b5fe83b676b14bec4b99685">SVF::LLVMUtil</a>
@@ -170,7 +170,7 @@ $(function() {
170
170
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">SVF::SVFUtil</a>
171
171
  </li>
172
172
  <li>isLockReleaseCall()
173
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">SVF::SVFUtil</a>
173
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a5b17fb3f5997e269938a368105592cbf">SVF::SVFUtil</a>
174
174
  </li>
175
175
  <li>isNoCallerFunction()
176
176
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a17cce1a11e1bfc342a9e3e79fe35deef">SVF::LLVMUtil</a>
@@ -188,7 +188,7 @@ $(function() {
188
188
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7">SVF::SVFUtil</a>
189
189
  </li>
190
190
  <li>isProgExitCall()
191
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">SVF::SVFUtil</a>
191
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a81e9fe00756a3f42395261c87e64de02">SVF::SVFUtil</a>
192
192
  </li>
193
193
  <li>isProgExitFunction()
194
194
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">SVF::SVFUtil</a>
@@ -212,19 +212,19 @@ $(function() {
212
212
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil</a>
213
213
  </li>
214
214
  <li>isStaticExtCall()
215
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a9236e11e62bde33d6ab1f309300c488a">SVF::SVFUtil</a>
215
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil</a>
216
216
  </li>
217
217
  <li>isStaticExtFun()
218
218
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil</a>
219
219
  </li>
220
220
  <li>isThreadExitCall()
221
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a916f308f05ef0711f0aa32a8e6f96986">SVF::SVFUtil</a>
221
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">SVF::SVFUtil</a>
222
222
  </li>
223
223
  <li>isThreadForkCall()
224
224
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ae3abb438b0182c32abfbd6a625a24041">SVF::SVFUtil</a>
225
225
  </li>
226
226
  <li>isThreadJoinCall()
227
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ad96e4550fca39e3edb362326a4cf1913">SVF::SVFUtil</a>
227
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">SVF::SVFUtil</a>
228
228
  </li>
229
229
  <li>isTruncConstantExpr()
230
230
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil</a>
@@ -133,7 +133,7 @@ $(function() {
133
133
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#aa0b3e34188f721ff7145e47cb607c79a">SVF::LLVMUtil</a>
134
134
  </li>
135
135
  <li>isConstantObjSym()
136
- : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#ad8ee8de153df3f1bbdebb67185a2731c">SVF::LLVMUtil</a>
136
+ : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a2fd5c626b818ac22a9c845227e1461c4">SVF::LLVMUtil</a>
137
137
  </li>
138
138
  <li>isConstDataOrAggData()
139
139
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil</a>
@@ -178,7 +178,7 @@ $(function() {
178
178
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil</a>
179
179
  </li>
180
180
  <li>isHeapAllocOrStaticExtCall()
181
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb">SVF::SVFUtil</a>
181
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a06b824671e2fab0e41a6b84ee9bd8362">SVF::SVFUtil</a>
182
182
  </li>
183
183
  <li>isInt2PtrConstantExpr()
184
184
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#adfa4a4e6d13004d14137d9168bd32463">SVF::LLVMUtil</a>
@@ -197,7 +197,7 @@ $(function() {
197
197
  : <a class="el" href="namespaceSVF_1_1cppUtil.html#a1e99d5cf28e0d6546e0d85b805a7e371">SVF::cppUtil</a>
198
198
  </li>
199
199
  <li>isLockAquireCall()
200
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">SVF::SVFUtil</a>
200
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a9cf550008fb5f051983003ee105738b1">SVF::SVFUtil</a>
201
201
  </li>
202
202
  <li>isLockReleaseCall()
203
203
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">SVF::SVFUtil</a>
@@ -215,10 +215,10 @@ $(function() {
215
215
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#aca11801ed6ef6ff8d2a1e85bc0fc5794">SVF::LLVMUtil</a>
216
216
  </li>
217
217
  <li>isProgEntryFunction()
218
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7">SVF::SVFUtil</a>
218
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil</a>
219
219
  </li>
220
220
  <li>isProgExitCall()
221
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a81e9fe00756a3f42395261c87e64de02">SVF::SVFUtil</a>
221
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">SVF::SVFUtil</a>
222
222
  </li>
223
223
  <li>isProgExitFunction()
224
224
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">SVF::SVFUtil</a>
@@ -230,7 +230,7 @@ $(function() {
230
230
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">SVF::LLVMUtil</a>
231
231
  </li>
232
232
  <li>isReallocExtCall()
233
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46">SVF::SVFUtil</a>
233
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a21eb8acf4b7f876507ff02c65fff0869">SVF::SVFUtil</a>
234
234
  </li>
235
235
  <li>isReallocExtFun()
236
236
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">SVF::SVFUtil</a>
@@ -242,7 +242,7 @@ $(function() {
242
242
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#ae59b0dc7f29dbd2018e819f77465f66e">SVF::LLVMUtil</a>
243
243
  </li>
244
244
  <li>isStaticExtCall()
245
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">SVF::SVFUtil</a>
245
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a9236e11e62bde33d6ab1f309300c488a">SVF::SVFUtil</a>
246
246
  </li>
247
247
  <li>isStaticExtFun()
248
248
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil</a>
@@ -254,7 +254,7 @@ $(function() {
254
254
  : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">SVF::SVFUtil</a>
255
255
  </li>
256
256
  <li>isThreadJoinCall()
257
- : <a class="el" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">SVF::SVFUtil</a>
257
+ : <a class="el" href="namespaceSVF_1_1SVFUtil.html#ad96e4550fca39e3edb362326a4cf1913">SVF::SVFUtil</a>
258
258
  </li>
259
259
  <li>isTruncConstantExpr()
260
260
  : <a class="el" href="namespaceSVF_1_1LLVMUtil.html#a946a2b51b848c45c6c52f03581ee05b8">SVF::LLVMUtil</a>
@@ -209,7 +209,7 @@ var searchData=
209
209
  ['is_5frealloc',['is_realloc',['../classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4',1,'SVF::ExtAPI']]],
210
210
  ['is_5fsamesignature',['is_sameSignature',['../classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b',1,'SVF::ExtAPI']]],
211
211
  ['is_5fsimple_5ftype',['is_simple_type',['../structSVF_1_1SVFUtil_1_1is__simple__type.html',1,'SVF::SVFUtil']]],
212
- ['isa',['isa',['../namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737',1,'SVF::SVFUtil']]],
212
+ ['isa',['isa',['../namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737',1,'SVF::SVFUtil::isa(const Y &amp;Val)'],['../namespaceSVF_1_1SVFUtil.html#a13729076054a2977670b05a338a6763d',1,'SVF::SVFUtil::isa(const Y &amp;Val)']]],
213
213
  ['isa_5fimpl',['isa_impl',['../structSVF_1_1SVFUtil_1_1isa__impl.html',1,'SVF::SVFUtil']]],
214
214
  ['isa_5fimpl_3c_20to_2c_20from_2c_20std_3a_3aenable_5fif_5ft_3c_20std_3a_3ais_5fbase_5fof_3c_20to_2c_20from_20_3e_3a_3avalue_20_3e_20_3e',['isa_impl&lt; To, From, std::enable_if_t&lt; std::is_base_of&lt; To, From &gt;::value &gt; &gt;',['../structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01std_1_1enable__if__t_3_01std_1_1is__baseacbe8554d65d479d86c5b7d994311309.html',1,'SVF::SVFUtil']]],
215
215
  ['isa_5fimpl_5fcl',['isa_impl_cl',['../structSVF_1_1SVFUtil_1_1isa__impl__cl.html',1,'SVF::SVFUtil']]],
@@ -102,7 +102,7 @@ var searchData=
102
102
  ['is_5fnumeral',['is_numeral',['../classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0',1,'SVF::Z3Expr']]],
103
103
  ['is_5frealloc',['is_realloc',['../classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4',1,'SVF::ExtAPI']]],
104
104
  ['is_5fsamesignature',['is_sameSignature',['../classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b',1,'SVF::ExtAPI']]],
105
- ['isa',['isa',['../namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737',1,'SVF::SVFUtil']]],
105
+ ['isa',['isa',['../namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737',1,'SVF::SVFUtil::isa(const Y &amp;Val)'],['../namespaceSVF_1_1SVFUtil.html#a13729076054a2977670b05a338a6763d',1,'SVF::SVFUtil::isa(const Y &amp;Val)']]],
106
106
  ['isactualoutphi',['isActualOUTPHI',['../classSVF_1_1InterMSSAPHISVFGNode.html#a4fef6f5eaeed80f1555b4cdaa2af5301',1,'SVF::InterMSSAPHISVFGNode']]],
107
107
  ['isactualretphi',['isActualRetPHI',['../classSVF_1_1InterPHIVFGNode.html#aacfd7f1e99e246283191f41d44567ed4',1,'SVF::InterPHIVFGNode']]],
108
108
  ['isagg',['isAgg',['../classSVF_1_1DCHGraph.html#a9d2be5aec5216cbc1d1709b41f79c44b',1,'SVF::DCHGraph']]],
@@ -82,7 +82,7 @@ Static Public Member Functions</h2></td></tr>
82
82
  struct SVF::SVFUtil::cast_convert_val&lt; To, From, SimpleFrom &gt;</h3>
83
83
 
84
84
 
85
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00315">315</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
85
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00322">322</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
86
86
  </div><h2 class="groupheader">Member Function Documentation</h2>
87
87
  <a id="a42987ff69d76fef88044fe0b19743239"></a>
88
88
  <h2 class="memtitle"><span class="permalink"><a href="#a42987ff69d76fef88044fe0b19743239">&#9670;&nbsp;</a></span>doit()</h2>
@@ -110,8 +110,8 @@ template&lt;class To , class From , class SimpleFrom &gt; </div>
110
110
  </table>
111
111
  </div><div class="memdoc">
112
112
 
113
- <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00318">318</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
114
- <div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;To, SimpleFrom,</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">typename</span> <a class="code" href="structSVF_1_1SVFUtil_1_1simplify__type.html#a40c0d9a74681d3eaa7172ba137d489e4">simplify_type&lt;SimpleFrom&gt;::SimpleType</a>&gt;<a class="code" href="structSVF_1_1SVFUtil_1_1cast__convert__val.html#a42987ff69d76fef88044fe0b19743239">::doit</a>(</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="structSVF_1_1SVFUtil_1_1simplify__type.html#a8046f044d895a5c9aee85de9705161f9">simplify_type&lt;From&gt;::getSimplifiedValue</a>(Val));</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="ttc" id="structSVF_1_1SVFUtil_1_1cast__convert__val_html_a42987ff69d76fef88044fe0b19743239"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1cast__convert__val.html#a42987ff69d76fef88044fe0b19743239">SVF::SVFUtil::cast_convert_val::doit</a></div><div class="ttdeci">static cast_retty&lt; To, From &gt;::ret_type doit(From &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00318">Casting.h:318</a></div></div>
113
+ <p class="definition">Definition at line <a class="el" href="Casting_8h_source.html#l00325">325</a> of file <a class="el" href="Casting_8h_source.html">Casting.h</a>.</p>
114
+ <div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> cast_convert_val&lt;To, SimpleFrom,</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">typename</span> <a class="code" href="structSVF_1_1SVFUtil_1_1simplify__type.html#a40c0d9a74681d3eaa7172ba137d489e4">simplify_type&lt;SimpleFrom&gt;::SimpleType</a>&gt;<a class="code" href="structSVF_1_1SVFUtil_1_1cast__convert__val.html#a42987ff69d76fef88044fe0b19743239">::doit</a>(</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="structSVF_1_1SVFUtil_1_1simplify__type.html#a8046f044d895a5c9aee85de9705161f9">simplify_type&lt;From&gt;::getSimplifiedValue</a>(Val));</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="ttc" id="structSVF_1_1SVFUtil_1_1cast__convert__val_html_a42987ff69d76fef88044fe0b19743239"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1cast__convert__val.html#a42987ff69d76fef88044fe0b19743239">SVF::SVFUtil::cast_convert_val::doit</a></div><div class="ttdeci">static cast_retty&lt; To, From &gt;::ret_type doit(From &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00325">Casting.h:325</a></div></div>
115
115
  <div class="ttc" id="structSVF_1_1SVFUtil_1_1simplify__type_html_a8046f044d895a5c9aee85de9705161f9"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1simplify__type.html#a8046f044d895a5c9aee85de9705161f9">SVF::SVFUtil::simplify_type::getSimplifiedValue</a></div><div class="ttdeci">static SimpleType &amp; getSimplifiedValue(From &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00108">Casting.h:108</a></div></div>
116
116
  <div class="ttc" id="structSVF_1_1SVFUtil_1_1simplify__type_html_a40c0d9a74681d3eaa7172ba137d489e4"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1simplify__type.html#a40c0d9a74681d3eaa7172ba137d489e4">SVF::SVFUtil::simplify_type::SimpleType</a></div><div class="ttdeci">From SimpleType</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00105">Casting.h:105</a></div></div>
117
117
  </div><!-- fragment -->