svf-tools 1.0.416 → 1.0.417
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.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +30 -29
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +25 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +33 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/functions_func_g.html +14 -11
- package/SVF-doxygen/html/html/functions_g.html +16 -13
- package/SVF-doxygen/html/html/functions_i.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +17 -15
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +12 -12
- package/SVF-doxygen/html/html/search/all_10.js +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +9 -9
- package/SVF-doxygen/html/html/search/all_14.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +1 -0
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +2 -2
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/functions_6.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/include/Util/BasicTypes.h +5 -0
- package/lib/Graphs/IRGraph.cpp +4 -0
- package/package.json +1 -1
|
@@ -268,6 +268,9 @@ $(function() {
|
|
|
268
268
|
<li>getAndersenAnalysis()
|
|
269
269
|
: <a class="el" href="classSVF_1_1DDAVFSolver.html#ac39860015b45b9af6351d0343f8983bb">SVF::DDAVFSolver< CVar, CPtSet, DPIm ></a>
|
|
270
270
|
</li>
|
|
271
|
+
<li>getArg()
|
|
272
|
+
: <a class="el" href="classSVF_1_1SVFFunction.html#a59b01d4e4d83db08e9df3e165e37c29a">SVF::SVFFunction</a>
|
|
273
|
+
</li>
|
|
271
274
|
<li>getArgOperand()
|
|
272
275
|
: <a class="el" href="classSVF_1_1CallSite.html#a5cd372d9fab846228fb0ee746001309a">SVF::CallSite</a>
|
|
273
276
|
</li>
|
|
@@ -622,7 +625,7 @@ $(function() {
|
|
|
622
625
|
, <a class="el" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet</a>
|
|
623
626
|
</li>
|
|
624
627
|
<li>getContexts()
|
|
625
|
-
: <a class="el" href="classSVF_1_1ContextCond.html#
|
|
628
|
+
: <a class="el" href="classSVF_1_1ContextCond.html#a2af7a9769d97ddb4a217d0baaf7c03a3">SVF::ContextCond</a>
|
|
626
629
|
, <a class="el" href="classSVF_1_1CxtDPItem.html#a1dea25cd5d72c52cef1cff23b832a196">SVF::CxtDPItem</a>
|
|
627
630
|
</li>
|
|
628
631
|
<li>getCopyInEdges()
|
|
@@ -1163,7 +1166,7 @@ $(function() {
|
|
|
1163
1166
|
: <a class="el" href="classSVF_1_1ICFGPrinter.html#a2c022308f9c7ae3bf33d9482fcb51e03">SVF::ICFGPrinter</a>
|
|
1164
1167
|
</li>
|
|
1165
1168
|
<li>getICFGNode()
|
|
1166
|
-
: <a class="el" href="classSVF_1_1ICFG.html#
|
|
1169
|
+
: <a class="el" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG</a>
|
|
1167
1170
|
, <a class="el" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">SVF::SVFStmt</a>
|
|
1168
1171
|
, <a class="el" href="classSVF_1_1VFGNode.html#a0675465e11d1d42ee7e2b7ab3c5de829">SVF::VFGNode</a>
|
|
1169
1172
|
</li>
|
|
@@ -1373,7 +1376,7 @@ $(function() {
|
|
|
1373
1376
|
</li>
|
|
1374
1377
|
<li>getLockVal()
|
|
1375
1378
|
: <a class="el" href="classSVF_1_1LockAnalysis.html#a785616f9c744d7249fd1080e5ed04d29">SVF::LockAnalysis</a>
|
|
1376
|
-
, <a class="el" href="classSVF_1_1ThreadAPI.html#
|
|
1379
|
+
, <a class="el" href="classSVF_1_1ThreadAPI.html#ad1d43e47f5036138e85068a1714f6c48">SVF::ThreadAPI</a>
|
|
1377
1380
|
</li>
|
|
1378
1381
|
<li>getLocToDPMVecMap()
|
|
1379
1382
|
: <a class="el" href="classSVF_1_1DDAVFSolver.html#ad849ae4509e88832f784c748468ab959">SVF::DDAVFSolver< CVar, CPtSet, DPIm ></a>
|
|
@@ -1439,7 +1442,7 @@ $(function() {
|
|
|
1439
1442
|
</li>
|
|
1440
1443
|
<li>getModRefInfo()
|
|
1441
1444
|
: <a class="el" href="classSVF_1_1MRGenerator.html#ac14c99ee6064fc9cf30120a83c78e702">SVF::MRGenerator</a>
|
|
1442
|
-
, <a class="el" href="classSVF_1_1WPAPass.html#
|
|
1445
|
+
, <a class="el" href="classSVF_1_1WPAPass.html#a148cd86101e402e7ed8d3b3dae151d79">SVF::WPAPass</a>
|
|
1443
1446
|
</li>
|
|
1444
1447
|
<li>getModSideEffectOfCallSite()
|
|
1445
1448
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a1535832f5b1ae3178fea950bf71fdd99">SVF::MRGenerator</a>
|
|
@@ -1901,15 +1904,15 @@ $(function() {
|
|
|
1901
1904
|
<li>getPts()
|
|
1902
1905
|
: <a class="el" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen</a>
|
|
1903
1906
|
, <a class="el" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl</a>
|
|
1904
|
-
, <a class="el" href="classSVF_1_1CondPTAImpl.html#
|
|
1907
|
+
, <a class="el" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">SVF::CondPTAImpl< Cond ></a>
|
|
1905
1908
|
, <a class="el" href="classSVF_1_1MutableDFPTData.html#a4cbb9131a89c5c48367fb927693b5c6b">SVF::MutableDFPTData< Key, KeySet, Data, DataSet ></a>
|
|
1906
1909
|
, <a class="el" href="classSVF_1_1MutableDiffPTData.html#ac2f494da9379c336bb81a0dc438b5af9">SVF::MutableDiffPTData< Key, KeySet, Data, DataSet ></a>
|
|
1907
1910
|
, <a class="el" href="classSVF_1_1MutablePTData.html#abe4230f3ba78fc660ea291fda36ffa62">SVF::MutablePTData< Key, KeySet, Data, DataSet ></a>
|
|
1908
|
-
, <a class="el" href="classSVF_1_1MutableVersionedPTData.html#
|
|
1911
|
+
, <a class="el" href="classSVF_1_1MutableVersionedPTData.html#aaf519166d2e0ca3c81088b52a1cf3066">SVF::MutableVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet ></a>
|
|
1909
1912
|
, <a class="el" href="classSVF_1_1PersistentDFPTData.html#a5f6a01d0bb40a718bc14f2cc1bb98a13">SVF::PersistentDFPTData< Key, KeySet, Data, DataSet ></a>
|
|
1910
1913
|
, <a class="el" href="classSVF_1_1PersistentDiffPTData.html#a9982ecf42416756a0729a28e8713cfed">SVF::PersistentDiffPTData< Key, KeySet, Data, DataSet ></a>
|
|
1911
1914
|
, <a class="el" href="classSVF_1_1PersistentPTData.html#a34f8226202e1654d4e67916b21ec4d99">SVF::PersistentPTData< Key, KeySet, Data, DataSet ></a>
|
|
1912
|
-
, <a class="el" href="classSVF_1_1PersistentVersionedPTData.html#
|
|
1915
|
+
, <a class="el" href="classSVF_1_1PersistentVersionedPTData.html#afe80884fa8227e50f28631e20aa6fdf6">SVF::PersistentVersionedPTData< Key, KeySet, Data, DataSet, VersionedKey, VersionedKeySet ></a>
|
|
1913
1916
|
, <a class="el" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis</a>
|
|
1914
1917
|
, <a class="el" href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">SVF::PTData< Key, KeySet, Data, DataSet ></a>
|
|
1915
1918
|
, <a class="el" href="classSVF_1_1Steensgaard.html#adbcb9af660ab9bb0202bd32342280486">SVF::Steensgaard</a>
|
|
@@ -1922,7 +1925,7 @@ $(function() {
|
|
|
1922
1925
|
, <a class="el" href="classSVF_1_1MutablePTData.html#a8838058efe94b62553bb5416fdc2ec5b">SVF::MutablePTData< Key, KeySet, Data, DataSet ></a>
|
|
1923
1926
|
</li>
|
|
1924
1927
|
<li>getPtsSubSetMap()
|
|
1925
|
-
: <a class="el" href="classSVF_1_1IntraDisjointMRG.html#
|
|
1928
|
+
: <a class="el" href="classSVF_1_1IntraDisjointMRG.html#ae3c857c056f4e6e863843bafba7fdea1">SVF::IntraDisjointMRG</a>
|
|
1926
1929
|
</li>
|
|
1927
1930
|
<li>getRawCTirMetadata()
|
|
1928
1931
|
: <a class="el" href="classSVF_1_1FlowSensitiveTBHC.html#a2c47ba37bd250be455a21d1f0049d556">SVF::FlowSensitiveTBHC</a>
|
|
@@ -1983,7 +1986,7 @@ $(function() {
|
|
|
1983
1986
|
, <a class="el" href="classSVF_1_1ICFGBuilder.html#a7c1125c992eec20e118e6bfc12cb8bfb">SVF::ICFGBuilder</a>
|
|
1984
1987
|
</li>
|
|
1985
1988
|
<li>getRetParmAtJoinedSite()
|
|
1986
|
-
: <a class="el" href="classSVF_1_1ThreadAPI.html#
|
|
1989
|
+
: <a class="el" href="classSVF_1_1ThreadAPI.html#ad1c595f7b15a2d3079b9e9200c84f7d7">SVF::ThreadAPI</a>
|
|
1987
1990
|
</li>
|
|
1988
1991
|
<li>getRetPE()
|
|
1989
1992
|
: <a class="el" href="classSVF_1_1RetCFGEdge.html#af84bf360ca641711a3c625de86feb603">SVF::RetCFGEdge</a>
|
|
@@ -2010,7 +2013,7 @@ $(function() {
|
|
|
2010
2013
|
</li>
|
|
2011
2014
|
<li>getRevPts()
|
|
2012
2015
|
: <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a58113943e4e7144d94d26991dcc8bcc7">SVF::BVDataPTAImpl</a>
|
|
2013
|
-
, <a class="el" href="classSVF_1_1CondPTAImpl.html#
|
|
2016
|
+
, <a class="el" href="classSVF_1_1CondPTAImpl.html#aa266eef30817c557882de19aefe135a9">SVF::CondPTAImpl< Cond ></a>
|
|
2014
2017
|
, <a class="el" href="classSVF_1_1MutableDFPTData.html#a2f98940bd8266ad37a975c6d30d948b4">SVF::MutableDFPTData< Key, KeySet, Data, DataSet ></a>
|
|
2015
2018
|
, <a class="el" href="classSVF_1_1MutableDiffPTData.html#ad9bd6762fc6525afaed4a6c6da63688d">SVF::MutableDiffPTData< Key, KeySet, Data, DataSet ></a>
|
|
2016
2019
|
, <a class="el" href="classSVF_1_1MutablePTData.html#a36aa05b8f5c308035315d6df7036c096">SVF::MutablePTData< Key, KeySet, Data, DataSet ></a>
|
|
@@ -2165,7 +2168,7 @@ $(function() {
|
|
|
2165
2168
|
, <a class="el" href="classSVF_1_1BranchVFGNode.html#a2ef5951de4760d28adb9d82b22067360">SVF::BranchVFGNode</a>
|
|
2166
2169
|
</li>
|
|
2167
2170
|
<li>getSuccNodes()
|
|
2168
|
-
: <a class="el" href="classSVF_1_1MTASVFGBuilder.html#
|
|
2171
|
+
: <a class="el" href="classSVF_1_1MTASVFGBuilder.html#a7033805052c8fae5cd0104fdd9e345c0">SVF::MTASVFGBuilder</a>
|
|
2169
2172
|
</li>
|
|
2170
2173
|
<li>getSVFFun()
|
|
2171
2174
|
: <a class="el" href="classSVF_1_1PCG.html#ac7dd2bbd4274a5e3a6427f3b674f99ba">SVF::PCG</a>
|
|
@@ -2216,7 +2219,7 @@ $(function() {
|
|
|
2216
2219
|
: <a class="el" href="classSVF_1_1ThreadAPI.html#aee8fac6281a95d8a519add100e8887d1">SVF::ThreadAPI</a>
|
|
2217
2220
|
</li>
|
|
2218
2221
|
<li>getTaskFuncAtHareParForSite()
|
|
2219
|
-
: <a class="el" href="classSVF_1_1ThreadAPI.html#
|
|
2222
|
+
: <a class="el" href="classSVF_1_1ThreadAPI.html#a282d6aeab91135af4cab8195d67badf6">SVF::ThreadAPI</a>
|
|
2220
2223
|
</li>
|
|
2221
2224
|
<li>getTCG()
|
|
2222
2225
|
: <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis</a>
|
|
@@ -2428,7 +2431,7 @@ $(function() {
|
|
|
2428
2431
|
: <a class="el" href="classSVF_1_1SVFModule.html#af81c6deed3978562f83f120119c6aad2">SVF::SVFModule</a>
|
|
2429
2432
|
</li>
|
|
2430
2433
|
<li>global_end()
|
|
2431
|
-
: <a class="el" href="classSVF_1_1SVFModule.html#
|
|
2434
|
+
: <a class="el" href="classSVF_1_1SVFModule.html#afa9068e662918f6649d5ca25340a3ae2">SVF::SVFModule</a>
|
|
2432
2435
|
</li>
|
|
2433
2436
|
<li>global_iterator
|
|
2434
2437
|
: <a class="el" href="classSVF_1_1SVFModule.html#a4cf1ca2e9f045a0520b0a8a6cd5993f2">SVF::SVFModule</a>
|
|
@@ -1248,7 +1248,7 @@ $(function() {
|
|
|
1248
1248
|
: <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#aff32f240a03421937c2fc606359dca9b">SVF::ForkJoinAnalysis</a>
|
|
1249
1249
|
, <a class="el" href="classSVF_1_1LockAnalysis.html#a6e34f3138e8ee558bb00d9d808afba16">SVF::LockAnalysis</a>
|
|
1250
1250
|
, <a class="el" href="classSVF_1_1MHP.html#aeabf2e9ec8b1ec874503c83cc65e1205">SVF::MHP</a>
|
|
1251
|
-
, <a class="el" href="classSVF_1_1ThreadAPI.html#
|
|
1251
|
+
, <a class="el" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">SVF::ThreadAPI</a>
|
|
1252
1252
|
</li>
|
|
1253
1253
|
<li>isTDJoin()
|
|
1254
1254
|
: <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#aac722a42dc6e03e771a7a80de5f8ec94">SVF::ForkJoinAnalysis</a>
|
|
@@ -184,12 +184,12 @@ $(function() {
|
|
|
184
184
|
<li>loadsToMRsMap
|
|
185
185
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator</a>
|
|
186
186
|
</li>
|
|
187
|
-
<li>LoadsToPointsToMap
|
|
188
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#acfadd565b5c978c9417e059b3ea7588c">SVF::MRGenerator</a>
|
|
189
|
-
</li>
|
|
190
187
|
<li>loadsToPointsToMap
|
|
191
188
|
: <a class="el" href="classSVF_1_1MRGenerator.html#af47e15d6b8c15d547a718f3577513975">SVF::MRGenerator</a>
|
|
192
189
|
</li>
|
|
190
|
+
<li>LoadsToPointsToMap
|
|
191
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#acfadd565b5c978c9417e059b3ea7588c">SVF::MRGenerator</a>
|
|
192
|
+
</li>
|
|
193
193
|
<li>loadTime
|
|
194
194
|
: <a class="el" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">SVF::FlowSensitive</a>
|
|
195
195
|
</li>
|
|
@@ -587,7 +587,7 @@ $(function() {
|
|
|
587
587
|
: <a class="el" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">SVF::SVFStmt</a>
|
|
588
588
|
</li>
|
|
589
589
|
<li>MultiOpndStmt()
|
|
590
|
-
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#
|
|
590
|
+
: <a class="el" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">SVF::MultiOpndStmt</a>
|
|
591
591
|
</li>
|
|
592
592
|
<li>MUSet
|
|
593
593
|
: <a class="el" href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA</a>
|
|
@@ -254,12 +254,12 @@ $(function() {
|
|
|
254
254
|
<li>nodeToRefMap
|
|
255
255
|
: <a class="el" href="classSVF_1_1OfflineConsG.html#aebeb8a44fcfbb677a738fa04c8e9c5e1">SVF::OfflineConsG</a>
|
|
256
256
|
</li>
|
|
257
|
-
<li>NodeToRepMap
|
|
258
|
-
: <a class="el" href="classSVF_1_1ConstraintGraph.html#afe34ca6bdbb22b188799a4297fd19004">SVF::ConstraintGraph</a>
|
|
259
|
-
</li>
|
|
260
257
|
<li>nodeToRepMap
|
|
261
258
|
: <a class="el" href="classSVF_1_1ConstraintGraph.html#ab1b5ee9202bd9f5d738f9850b42a45d2">SVF::ConstraintGraph</a>
|
|
262
259
|
</li>
|
|
260
|
+
<li>NodeToRepMap
|
|
261
|
+
: <a class="el" href="classSVF_1_1ConstraintGraph.html#afe34ca6bdbb22b188799a4297fd19004">SVF::ConstraintGraph</a>
|
|
262
|
+
</li>
|
|
263
263
|
<li>NodeToSubsMap
|
|
264
264
|
: <a class="el" href="classSVF_1_1ConstraintGraph.html#ac7d24753491a9bab39a13b32bb65f139">SVF::ConstraintGraph</a>
|
|
265
265
|
</li>
|
|
@@ -525,7 +525,7 @@ $(function() {
|
|
|
525
525
|
: <a class="el" href="classSVF_1_1RetCFGEdge.html#ad4bbb9881dff7b715c7a70b92baf376c">SVF::RetCFGEdge</a>
|
|
526
526
|
</li>
|
|
527
527
|
<li>RetPE()
|
|
528
|
-
: <a class="el" href="classSVF_1_1RetPE.html#
|
|
528
|
+
: <a class="el" href="classSVF_1_1RetPE.html#ab4da5e54fec989eab5640acc8c4fe215">SVF::RetPE</a>
|
|
529
529
|
</li>
|
|
530
530
|
<li>retPEBegin()
|
|
531
531
|
: <a class="el" href="classSVF_1_1FormalRetVFGNode.html#ad81c6e6579293352ecb59345538b2132">SVF::FormalRetVFGNode</a>
|
|
@@ -112,11 +112,13 @@ $(function() {
|
|
|
112
112
|
</li>
|
|
113
113
|
<li>SCC
|
|
114
114
|
: <a class="el" href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SVF::MRGenerator</a>
|
|
115
|
-
, <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver< GraphType ></a>
|
|
116
115
|
</li>
|
|
117
116
|
<li>scc
|
|
118
117
|
: <a class="el" href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">SVF::WPASolver< GraphType ></a>
|
|
119
118
|
</li>
|
|
119
|
+
<li>SCC
|
|
120
|
+
: <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver< GraphType ></a>
|
|
121
|
+
</li>
|
|
120
122
|
<li>sccCandidates
|
|
121
123
|
: <a class="el" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">SVF::AndersenSCD</a>
|
|
122
124
|
</li>
|
|
@@ -134,12 +136,12 @@ $(function() {
|
|
|
134
136
|
<li>SCCDetectionTime
|
|
135
137
|
: <a class="el" href="classSVF_1_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">SVF::PTAStat</a>
|
|
136
138
|
</li>
|
|
137
|
-
<li>sccEdgeFlag
|
|
138
|
-
: <a class="el" href="classSVF_1_1ConstraintNode.html#a0fd9fca5ed82cf83dbd825d23c63783a">SVF::ConstraintNode</a>
|
|
139
|
-
</li>
|
|
140
139
|
<li>SCCEdgeFlag
|
|
141
140
|
: <a class="el" href="classSVF_1_1ConstraintNode.html#a6e59b815d784bc1a9437290ff0e1e28c">SVF::ConstraintNode</a>
|
|
142
141
|
</li>
|
|
142
|
+
<li>sccEdgeFlag
|
|
143
|
+
: <a class="el" href="classSVF_1_1ConstraintNode.html#a0fd9fca5ed82cf83dbd825d23c63783a">SVF::ConstraintNode</a>
|
|
144
|
+
</li>
|
|
143
145
|
<li>SCCMergeTime
|
|
144
146
|
: <a class="el" href="classSVF_1_1PTAStat.html#a8c4101e697057269def501d14a987287">SVF::PTAStat</a>
|
|
145
147
|
</li>
|
|
@@ -812,18 +814,18 @@ $(function() {
|
|
|
812
814
|
<li>StoreStmt()
|
|
813
815
|
: <a class="el" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">SVF::StoreStmt</a>
|
|
814
816
|
</li>
|
|
815
|
-
<li>StoresToMRsMap
|
|
816
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
|
|
817
|
-
</li>
|
|
818
817
|
<li>storesToMRsMap
|
|
819
818
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a255551fd3ff8fb33bcea93d0b00280b3">SVF::MRGenerator</a>
|
|
820
819
|
</li>
|
|
821
|
-
<li>
|
|
822
|
-
: <a class="el" href="classSVF_1_1MRGenerator.html#
|
|
820
|
+
<li>StoresToMRsMap
|
|
821
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
|
|
823
822
|
</li>
|
|
824
823
|
<li>StoresToPointsToMap
|
|
825
824
|
: <a class="el" href="classSVF_1_1MRGenerator.html#a357e1654e30b2f91f6ea30ea5a52e91d">SVF::MRGenerator</a>
|
|
826
825
|
</li>
|
|
826
|
+
<li>storesToPointsToMap
|
|
827
|
+
: <a class="el" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator</a>
|
|
828
|
+
</li>
|
|
827
829
|
<li>storeTime
|
|
828
830
|
: <a class="el" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive</a>
|
|
829
831
|
</li>
|
|
@@ -839,12 +841,12 @@ $(function() {
|
|
|
839
841
|
<li>StoreVFGNode()
|
|
840
842
|
: <a class="el" href="classSVF_1_1StoreVFGNode.html#ab4b9182cb0f2ef7dfc1e15789a311ecd">SVF::StoreVFGNode</a>
|
|
841
843
|
</li>
|
|
842
|
-
<li>Strategy
|
|
843
|
-
: <a class="el" href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator</a>
|
|
844
|
-
</li>
|
|
845
844
|
<li>strategy
|
|
846
845
|
: <a class="el" href="classSVF_1_1NodeIDAllocator.html#a44420802f9db288515ee09771c3edd4d">SVF::NodeIDAllocator</a>
|
|
847
846
|
</li>
|
|
847
|
+
<li>Strategy
|
|
848
|
+
: <a class="el" href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator</a>
|
|
849
|
+
</li>
|
|
848
850
|
<li>stride
|
|
849
851
|
: <a class="el" href="classSVF_1_1StInfo.html#a6c52ecbeeeeb0dda019c68aec687f2c2">SVF::StInfo</a>
|
|
850
852
|
</li>
|
|
@@ -971,12 +973,12 @@ $(function() {
|
|
|
971
973
|
: <a class="el" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice</a>
|
|
972
974
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA</a>
|
|
973
975
|
</li>
|
|
974
|
-
<li>svfgNodeToCondMap
|
|
975
|
-
: <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
|
|
976
|
-
</li>
|
|
977
976
|
<li>SVFGNodeToCondMap
|
|
978
977
|
: <a class="el" href="classSVF_1_1ProgSlice.html#ae16157bd0b66dfb3cc18b778a745ed00">SVF::ProgSlice</a>
|
|
979
978
|
</li>
|
|
979
|
+
<li>svfgNodeToCondMap
|
|
980
|
+
: <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
|
|
981
|
+
</li>
|
|
980
982
|
<li>SVFGNodeToCSIDMap
|
|
981
983
|
: <a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVF::LeakChecker</a>
|
|
982
984
|
</li>
|
|
@@ -365,12 +365,12 @@ $(function() {
|
|
|
365
365
|
<li>timeOfUpdateCallGraph
|
|
366
366
|
: <a class="el" href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">SVF::AndersenBase</a>
|
|
367
367
|
</li>
|
|
368
|
-
<li>TIMEStatMap
|
|
369
|
-
: <a class="el" href="classSVF_1_1PTAStat.html#a28f304e7095f3843ca4cc017bc1f7b10">SVF::PTAStat</a>
|
|
370
|
-
</li>
|
|
371
368
|
<li>timeStatMap
|
|
372
369
|
: <a class="el" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat</a>
|
|
373
370
|
</li>
|
|
371
|
+
<li>TIMEStatMap
|
|
372
|
+
: <a class="el" href="classSVF_1_1PTAStat.html#a28f304e7095f3843ca4cc017bc1f7b10">SVF::PTAStat</a>
|
|
373
|
+
</li>
|
|
374
374
|
<li>TInterPhi
|
|
375
375
|
: <a class="el" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75aa501e9891cbacea3950d80aa6071ec69">SVF::VFGNode</a>
|
|
376
376
|
</li>
|
|
@@ -4598,8 +4598,8 @@ template<typename F , typename S > </div>
|
|
|
4598
4598
|
</table>
|
|
4599
4599
|
</div><div class="memdoc">
|
|
4600
4600
|
|
|
4601
|
-
<p class="definition">Definition at line <a class="el" href="Util_2BasicTypes_8h_source.html#
|
|
4602
|
-
<div class="fragment"><div class="line"><a name="
|
|
4601
|
+
<p class="definition">Definition at line <a class="el" href="Util_2BasicTypes_8h_source.html#l00326">326</a> of file <a class="el" href="Util_2BasicTypes_8h_source.html">BasicTypes.h</a>.</p>
|
|
4602
|
+
<div class="fragment"><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  o << <span class="stringliteral">"<"</span> << var.first << <span class="stringliteral">", "</span> << var.second << <span class="stringliteral">">"</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }</div></div><!-- fragment -->
|
|
4603
4603
|
</div>
|
|
4604
4604
|
</div>
|
|
4605
4605
|
<a id="aa01b96d5bc6c3930b0bfca789acf75c4"></a>
|
|
@@ -2402,13 +2402,13 @@ template<class X , class Y > </div>
|
|
|
2402
2402
|
<div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* type = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>>(inst->getType());</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(inst))</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v = <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad72b3529e87e71767c6d226821cfddb3">getUniqueUseViaCastInst</a>(inst)){</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* newTy = SVFUtil::dyn_cast<PointerType>(v->getType()))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  type = newTy;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(inst))</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordtype">int</span> arg_pos = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *arg = cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_pos);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  type = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>>(arg->getType());</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>( <span class="keyword">false</span> && <span class="stringliteral">"not a heap allocation instruction?"</span>);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(type && <span class="stringliteral">"not a pointer type?"</span>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> type->getElementType();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad72b3529e87e71767c6d226821cfddb3"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad72b3529e87e71767c6d226821cfddb3">SVF::SVFUtil::getUniqueUseViaCastInst</a></div><div class="ttdeci">const Value * getUniqueUseViaCastInst(const Value *val)</div><div class="ttdoc">Return the bitcast instruction which is val&#39;s only use site, otherwise return nullptr. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00271">LLVMUtil.cpp:271</a></div></div>
|
|
2403
2403
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2404
2404
|
<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="Util_2BasicTypes_8h_source.html#l00103">BasicTypes.h:103</a></div></div>
|
|
2405
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
2405
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00303">BasicTypes.h:303</a></div></div>
|
|
2406
2406
|
<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="LLVMUtil_8h_source.html#l00107">LLVMUtil.h:107</a></div></div>
|
|
2407
2407
|
<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="LLVMUtil_8h_source.html#l00095">LLVMUtil.h:95</a></div></div>
|
|
2408
2408
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00268">SVFUtil.h:268</a></div></div>
|
|
2409
2409
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00130">LLVMUtil.h:130</a></div></div>
|
|
2410
2410
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
2411
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
2411
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00294">BasicTypes.h:294</a></div></div>
|
|
2412
2412
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
2413
2413
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
2414
2414
|
</div><!-- fragment -->
|
|
@@ -224,7 +224,7 @@ Functions</h2></td></tr>
|
|
|
224
224
|
|
|
225
225
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00517">517</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
226
226
|
<div class="fragment"><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordtype">string</span> thisPtrClassName;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst->getMetadata(<span class="stringliteral">"VCallPtrType"</span>))</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a> &mdstr = SVFUtil::cast<MDString>((N->getOperand(0)));</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  thisPtrClassName = mdstr.getString().str();</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">if</span> (thisPtrClassName.size() == 0)</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *thisPtr = <a class="code" href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">getVCallThisPtr</a>(cs);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  thisPtrClassName = <a class="code" href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">getClassNameFromType</a>(thisPtr->getType());</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordtype">size_t</span> found = thisPtrClassName.find_last_not_of(<span class="stringliteral">"0123456789"</span>);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">if</span> (found != string::npos)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (found != thisPtrClassName.size() - 1 && thisPtrClassName[found] == <span class="charliteral">'.'</span>)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">return</span> thisPtrClassName.substr(0, found);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">return</span> thisPtrClassName;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> }</div><div class="ttc" id="namespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00130">BasicTypes.h:130</a></div></div>
|
|
227
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
227
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00301">BasicTypes.h:301</a></div></div>
|
|
228
228
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a891719bac36ebb6c001f073dfa5a9e7b"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a891719bac36ebb6c001f073dfa5a9e7b">SVF::cppUtil::getClassNameFromType</a></div><div class="ttdeci">std::string getClassNameFromType(const Type *ty)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00410">CPPUtil.cpp:410</a></div></div>
|
|
229
229
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
230
230
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a7c9507812041b5de8dbbca5b602fefbd"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a7c9507812041b5de8dbbca5b602fefbd">SVF::cppUtil::getVCallThisPtr</a></div><div class="ttdeci">const Value * getVCallThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00314">CPPUtil.cpp:314</a></div></div>
|
|
@@ -275,7 +275,7 @@ Functions</h2></td></tr>
|
|
|
275
275
|
|
|
276
276
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00544">544</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
277
277
|
<div class="fragment"><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordtype">string</span> funName;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>();</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst->getMetadata(<span class="stringliteral">"VCallFunName"</span>))</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">MDString</a> &mdstr = SVFUtil::cast<MDString>((N->getOperand(0)));</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  funName = mdstr.getString().str();</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> funName;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span> }</div><div class="ttc" id="namespaceSVF_html_a28eec26ec8edaa5e96aecfeb01f6c0d4"><div class="ttname"><a href="namespaceSVF.html#a28eec26ec8edaa5e96aecfeb01f6c0d4">SVF::MDString</a></div><div class="ttdeci">llvm::MDString MDString</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00130">BasicTypes.h:130</a></div></div>
|
|
278
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
278
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00301">BasicTypes.h:301</a></div></div>
|
|
279
279
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
280
280
|
<div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
|
|
281
281
|
</div><!-- fragment -->
|
|
@@ -299,7 +299,7 @@ Functions</h2></td></tr>
|
|
|
299
299
|
|
|
300
300
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00294">294</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
301
301
|
<div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *ret = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &bb:*F) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &inst: bb) {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (llvm::isa<CallInst>(inst) || llvm::isa<InvokeInst>(inst)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  || llvm::isa<CallBrInst>(inst)) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast<Instruction*>(&inst));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// assert(cs.getCalledFunction() &&</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// "Indirect call detected in thunk func");</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// assert(ret == nullptr && "multiple callsites in thunk func");</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  ret = cs.getCalledFunction();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div><div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
|
|
302
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
302
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00294">BasicTypes.h:294</a></div></div>
|
|
303
303
|
</div><!-- fragment -->
|
|
304
304
|
</div>
|
|
305
305
|
</div>
|
|
@@ -321,7 +321,7 @@ Functions</h2></td></tr>
|
|
|
321
321
|
|
|
322
322
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00390">390</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
323
323
|
<div class="fragment"><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>>(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(vfuncloadinst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst->getPointerOperand();</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>>(vfuncptr);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  User::const_op_iterator oi = vfuncptrgepinst->idx_begin();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *idx = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>>(&(*oi));</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> idx_value;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (idx == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"vcall gep idx not constantint\n"</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  idx_value = 0;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  idx_value = idx->getSExtValue();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> idx_value;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
324
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
324
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00312">BasicTypes.h:312</a></div></div>
|
|
325
325
|
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
|
|
326
326
|
<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 & 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>
|
|
327
327
|
<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="Util_2BasicTypes_8h_source.html#l00142">BasicTypes.h:142</a></div></div>
|
|
@@ -349,8 +349,8 @@ Functions</h2></td></tr>
|
|
|
349
349
|
</div><div class="memdoc">
|
|
350
350
|
|
|
351
351
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00314">314</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
352
|
-
<div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">paramHasAttr</a>(0, llvm::Attribute::StructRet))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(1);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(0);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div><div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
353
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a15a98a5e0fe91f0e239a052acd029cc2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">SVF::CallSite::paramHasAttr</a></div><div class="ttdeci">bool paramHasAttr(unsigned ArgNo, llvm::Attribute::AttrKind Kind) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
352
|
+
<div class="fragment"><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">paramHasAttr</a>(0, llvm::Attribute::StructRet))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(1);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(0);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div><div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00303">BasicTypes.h:303</a></div></div>
|
|
353
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a15a98a5e0fe91f0e239a052acd029cc2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a15a98a5e0fe91f0e239a052acd029cc2">SVF::CallSite::paramHasAttr</a></div><div class="ttdeci">bool paramHasAttr(unsigned ArgNo, llvm::Attribute::AttrKind Kind) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00315">BasicTypes.h:315</a></div></div>
|
|
354
354
|
</div><!-- fragment -->
|
|
355
355
|
</div>
|
|
356
356
|
</div>
|
|
@@ -372,7 +372,7 @@ Functions</h2></td></tr>
|
|
|
372
372
|
|
|
373
373
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00379">379</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
374
374
|
<div class="fragment"><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *loadInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a>>(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>());</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loadInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = loadInst->getPointerOperand();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *gepInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a>>(vfuncptr);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(gepInst != <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = gepInst->getPointerOperand();</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">return</span> vtbl;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
375
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
375
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00312">BasicTypes.h:312</a></div></div>
|
|
376
376
|
<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="Util_2BasicTypes_8h_source.html#l00142">BasicTypes.h:142</a></div></div>
|
|
377
377
|
<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="Util_2BasicTypes_8h_source.html#l00140">BasicTypes.h:140</a></div></div>
|
|
378
378
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
@@ -555,12 +555,12 @@ Functions</h2></td></tr>
|
|
|
555
555
|
</div><div class="memdoc">
|
|
556
556
|
|
|
557
557
|
<p class="definition">Definition at line <a class="el" href="CPPUtil_8cpp_source.html#l00257">257</a> of file <a class="el" href="CPPUtil_8cpp_source.html">CPPUtil.cpp</a>.</p>
|
|
558
|
-
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// the callsite must be an indirect one with at least one argument (this ptr)</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">getCalledFunction</a>() != <span class="keyword">nullptr</span> || cs.<a class="code" href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">arg_empty</a>())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// When compiled with ctir, we'd be using the DCHG which has its own</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="comment">// virtual annotations.</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->allCTir())</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()->getMetadata(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>) != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfunc = cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = SVFUtil::dyn_cast<LoadInst>(vfunc))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst->getPointerOperand();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (vfuncptrgepinst->getNumIndices() != 1)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = vfuncptrgepinst->getPointerOperand();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(vtbl))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
559
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ad084f7734007db7b14444b20bb980dd3"><div class="ttname"><a href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">SVF::CallSite::arg_empty</a></div><div class="ttdeci">bool arg_empty() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
560
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
558
|
+
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// the callsite must be an indirect one with at least one argument (this ptr)</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">getCalledFunction</a>() != <span class="keyword">nullptr</span> || cs.<a class="code" href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">arg_empty</a>())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// When compiled with ctir, we'd be using the DCHG which has its own</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="comment">// virtual annotations.</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (LLVMModuleSet::getLLVMModuleSet()->allCTir())</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()->getMetadata(<a class="code" href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">cppUtil::ctir::derefMDName</a>) != <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfunc = cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5a6e8ab900d5cd17ef72661006a7fbe0">LoadInst</a> *vfuncloadinst = SVFUtil::dyn_cast<LoadInst>(vfunc))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vfuncptr = vfuncloadinst->getPointerOperand();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac4e93e1fec646ff222940a663843921b">GetElementPtrInst</a> *vfuncptrgepinst =</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  SVFUtil::dyn_cast<GetElementPtrInst>(vfuncptr))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (vfuncptrgepinst->getNumIndices() != 1)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = vfuncptrgepinst->getPointerOperand();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(vtbl))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div><div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00312">BasicTypes.h:312</a></div></div>
|
|
559
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ad084f7734007db7b14444b20bb980dd3"><div class="ttname"><a href="classSVF_1_1CallSite.html#ad084f7734007db7b14444b20bb980dd3">SVF::CallSite::arg_empty</a></div><div class="ttdeci">bool arg_empty() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00308">BasicTypes.h:308</a></div></div>
|
|
560
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00301">BasicTypes.h:301</a></div></div>
|
|
561
561
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_1_1ctir_html_a0cd5347bc8043d4306e66a4a96005ace"><div class="ttname"><a href="namespaceSVF_1_1cppUtil_1_1ctir.html#a0cd5347bc8043d4306e66a4a96005ace">SVF::cppUtil::ctir::derefMDName</a></div><div class="ttdeci">const std::string derefMDName</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8h_source.html#l00113">CPPUtil.h:113</a></div></div>
|
|
562
562
|
<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="Util_2BasicTypes_8h_source.html#l00142">BasicTypes.h:142</a></div></div>
|
|
563
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ae9b0172e29199f2a938d7cf9e42241cf"><div class="ttname"><a href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">SVF::CallSite::getCalledFunction</a></div><div class="ttdeci">Function * getCalledFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
563
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ae9b0172e29199f2a938d7cf9e42241cf"><div class="ttname"><a href="classSVF_1_1CallSite.html#ae9b0172e29199f2a938d7cf9e42241cf">SVF::CallSite::getCalledFunction</a></div><div class="ttdeci">Function * getCalledFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00311">BasicTypes.h:311</a></div></div>
|
|
564
564
|
<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="Util_2BasicTypes_8h_source.html#l00140">BasicTypes.h:140</a></div></div>
|
|
565
565
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
566
566
|
</div><!-- fragment -->
|
|
@@ -586,7 +586,7 @@ Functions</h2></td></tr>
|
|
|
586
586
|
<div class="fragment"><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  std::string classNameOfThisPtr = <a class="code" href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">getClassNameOfThisPtr</a>(cs);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *func = cs.<a class="code" href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">getCaller</a>();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">isConstructor</a>(func) || <a class="code" href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">isDestructor</a>(func))</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(func->getName().str());</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">if</span> (classNameOfThisPtr.compare(dname.className) == 0)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div><div class="ttc" id="namespaceSVF_1_1cppUtil_html_ad6f9578cdce518141772a11617160da8"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ad6f9578cdce518141772a11617160da8">SVF::cppUtil::isConstructor</a></div><div class="ttdeci">bool isConstructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00453">CPPUtil.cpp:453</a></div></div>
|
|
587
587
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_af19bec54621f4605bac4feaf9f73803c"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#af19bec54621f4605bac4feaf9f73803c">SVF::cppUtil::isDestructor</a></div><div class="ttdeci">bool isDestructor(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00484">CPPUtil.cpp:484</a></div></div>
|
|
588
588
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
|
|
589
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_afd501405e1d3cc673fced6dc56f3b759"><div class="ttname"><a href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">SVF::CallSite::getCaller</a></div><div class="ttdeci">Function * getCaller() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
589
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_afd501405e1d3cc673fced6dc56f3b759"><div class="ttname"><a href="classSVF_1_1CallSite.html#afd501405e1d3cc673fced6dc56f3b759">SVF::CallSite::getCaller</a></div><div class="ttdeci">Function * getCaller() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00313">BasicTypes.h:313</a></div></div>
|
|
590
590
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3bed7bc0a0ae580841ca049f91690ff7"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3bed7bc0a0ae580841ca049f91690ff7">SVF::cppUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00517">CPPUtil.cpp:517</a></div></div>
|
|
591
591
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div></div>
|
|
592
592
|
</div><!-- fragment -->
|