svf-tools 1.0.549 → 1.0.550
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/ExtAPI_8cpp_source.html +38 -41
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +70 -81
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +9 -10
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +24 -36
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +141 -224
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation-members.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +81 -56
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +60 -76
- package/SVF-doxygen/html/html/functions_a.html +6 -9
- package/SVF-doxygen/html/html/functions_c.html +2 -2
- package/SVF-doxygen/html/html/functions_e.html +2 -35
- package/SVF-doxygen/html/html/functions_enum.html +0 -3
- package/SVF-doxygen/html/html/functions_eval_e.html +0 -30
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func_g.html +20 -17
- package/SVF-doxygen/html/html/functions_func_o.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +3 -3
- package/SVF-doxygen/html/html/functions_func_s.html +10 -13
- package/SVF-doxygen/html/html/functions_g.html +21 -18
- package/SVF-doxygen/html/html/functions_i.html +6 -6
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +20 -17
- package/SVF-doxygen/html/html/functions_p.html +12 -14
- package/SVF-doxygen/html/html/functions_r.html +7 -5
- package/SVF-doxygen/html/html/functions_s.html +22 -23
- package/SVF-doxygen/html/html/functions_t.html +7 -5
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_o.html +7 -4
- package/SVF-doxygen/html/html/search/all_1.js +0 -1
- package/SVF-doxygen/html/html/search/all_10.js +10 -10
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +7 -8
- package/SVF-doxygen/html/html/search/all_13.js +2 -2
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_5.js +0 -11
- package/SVF-doxygen/html/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +5 -4
- package/SVF-doxygen/html/html/search/all_9.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +4 -4
- package/SVF-doxygen/html/html/search/all_f.js +6 -4
- package/SVF-doxygen/html/html/search/enums_3.js +0 -1
- package/SVF-doxygen/html/html/search/enumvalues_4.js +1 -11
- package/SVF-doxygen/html/html/search/functions_11.js +1 -2
- package/SVF-doxygen/html/html/search/functions_6.js +5 -4
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +2 -2
- package/SVF-doxygen/html/html/search/variables_1.js +0 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/search/variables_f.js +3 -2
- package/include/SVF-FE/SVFIRBuilder.h +1 -1
- package/include/Util/ExtAPI.h +17 -42
- package/include/Util/ExtAPI.json +1013 -989
- package/lib/SVF-FE/SVFIRBuilder.cpp +122 -222
- package/lib/Util/ExtAPI.cpp +53 -68
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ var searchData=
|
|
|
13
13
|
['parse_5fstring',['parse_string',['../cJSON_8cpp.html#adf47b520af96d1bbefa2390016fbdb51',1,'cJSON.cpp']]],
|
|
14
14
|
['parse_5fvalue',['parse_value',['../cJSON_8cpp.html#afd5c0b7089e4de2fc9b2af599d4b596f',1,'cJSON.cpp']]],
|
|
15
15
|
['parsejson',['parseJson',['../ExtAPI_8cpp.html#a3957468a4d85cef02d8be1f82bcdfc69',1,'ExtAPI.cpp']]],
|
|
16
|
-
['
|
|
16
|
+
['parseoperations',['parseOperations',['../classSVF_1_1SVFIRBuilder.html#a8f4716f34bc0738ed9dec756113f0a37',1,'SVF::SVFIRBuilder']]],
|
|
17
17
|
['parseproductionsstring',['parseProductionsString',['../classSVF_1_1GrammarBuilder.html#a5a34166b4b1ce1dcc985f4619f4a2bbc',1,'SVF::GrammarBuilder']]],
|
|
18
18
|
['parseselfcyclehandleoption',['parseSelfCycleHandleOption',['../classSVF_1_1SVFGOPT.html#ac3b14bf191cadb832e3a34affd7e569d',1,'SVF::SVFGOPT']]],
|
|
19
19
|
['partitionmrs',['partitionMRs',['../classSVF_1_1DistinctMRG.html#a4512ef21fa83988ad4d588831bfba482',1,'SVF::DistinctMRG::partitionMRs()'],['../classSVF_1_1IntraDisjointMRG.html#a6d2434f0e3a318b89b7b9fa4f5613b64',1,'SVF::IntraDisjointMRG::partitionMRs()'],['../classSVF_1_1InterDisjointMRG.html#a807cf159e53c2fb2903296207185dda0',1,'SVF::InterDisjointMRG::partitionMRs()'],['../classSVF_1_1MRGenerator.html#ac0b966ee2065607a24920dd9067b40e9',1,'SVF::MRGenerator::partitionMRs()']]],
|
|
@@ -41,7 +41,7 @@ var searchData=
|
|
|
41
41
|
['phivfgnode',['PHIVFGNode',['../classSVF_1_1PHIVFGNode.html#add1ed5dfc7fbb095e2bdb7ff1e2658ef',1,'SVF::PHIVFGNode']]],
|
|
42
42
|
['plainmap',['plainMap',['../classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b',1,'SVF::FlowSensitive']]],
|
|
43
43
|
['pointeranalysis',['PointerAnalysis',['../classSVF_1_1PointerAnalysis.html#a14e2a209cb594f91a24ef09b12f82f3f',1,'SVF::PointerAnalysis']]],
|
|
44
|
-
['pointsto',['
|
|
44
|
+
['pointsto',['pointsTo',['../classSVF_1_1CondPointsToSet.html#a63f09ca69e00b317de29af6a6a12daac',1,'SVF::CondPointsToSet::pointsTo(void)'],['../classSVF_1_1CondPointsToSet.html#ada240bc77570174a1d17ac097583fa78',1,'SVF::CondPointsToSet::pointsTo(void) const'],['../classSVF_1_1CondPointsToSet.html#a03311162626acf16ad05b7b93248a92b',1,'SVF::CondPointsToSet::pointsTo(Cond cond) const'],['../classSVF_1_1CondPointsToSet.html#a8775ef2c073af6c8055c3f5b0035288f',1,'SVF::CondPointsToSet::pointsTo(Cond cond)'],['../classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22',1,'SVF::PointsTo::PointsTo(void)'],['../classSVF_1_1PointsTo.html#acef2d3e41263aef641c3411e28ad445c',1,'SVF::PointsTo::PointsTo(const PointsTo &pt)'],['../classSVF_1_1PointsTo.html#a5ecef616428a70e8e7726406dfb43544',1,'SVF::PointsTo::PointsTo(PointsTo &&pt)']]],
|
|
45
45
|
['pointstoiterator',['PointsToIterator',['../classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16',1,'SVF::PointsTo::PointsToIterator::PointsToIterator(void)=delete'],['../classSVF_1_1PointsTo_1_1PointsToIterator.html#a19f371ccb5b1c84fb4adfd5b0c8a3eec',1,'SVF::PointsTo::PointsToIterator::PointsToIterator(const PointsToIterator &pt)'],['../classSVF_1_1PointsTo_1_1PointsToIterator.html#abe128c47fb16093756195f789e5f68d5',1,'SVF::PointsTo::PointsToIterator::PointsToIterator(PointsToIterator &&pt)'],['../classSVF_1_1PointsTo_1_1PointsToIterator.html#ad9efcd9fb0c8201b9166a1560d06a71b',1,'SVF::PointsTo::PointsToIterator::PointsToIterator(const PointsTo *pt, bool end=false)']]],
|
|
46
46
|
['pop',['pop',['../classSVF_1_1CFLFIFOWorkList.html#a8ccf884ed6bc0d172f3c2999717f9cff',1,'SVF::CFLFIFOWorkList::pop()'],['../classSVF_1_1List.html#a6e85bd3d8b23ccc7752a72e2a5b171ab',1,'SVF::List::pop()'],['../classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6',1,'SVF::FIFOWorkList::pop()'],['../classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b',1,'SVF::FILOWorkList::pop()']]],
|
|
47
47
|
['popfromctpworklist',['popFromCTPWorkList',['../classSVF_1_1LockAnalysis.html#ac3de5acfb887c17ebf1213a1c2c38b58',1,'SVF::LockAnalysis::popFromCTPWorkList()'],['../classSVF_1_1TCT.html#ad84cdb0d192312f96d006f7b9e660da3',1,'SVF::TCT::popFromCTPWorkList()']]],
|
|
@@ -53,7 +53,6 @@ var searchData=
|
|
|
53
53
|
['annoflag',['AnnoFlag',['../classSVF_1_1Options.html#ae1dadbd4c213f1bd5b8957b5c747bebd',1,'SVF::Options']]],
|
|
54
54
|
['annotationtime',['AnnotationTime',['../classSVF_1_1MTAStat.html#a51e1ba35f81d89e210a937942f516839',1,'SVF::MTAStat']]],
|
|
55
55
|
['apnodes',['APNodes',['../classSVF_1_1CallICFGNode.html#a07615cb6245a9dccbba2cc70bde9bf22',1,'SVF::CallICFGNode']]],
|
|
56
|
-
['args',['args',['../classSVF_1_1ExtAPI_1_1Operation.html#a826ff720a0038118e8e27e2a36d05cd5',1,'SVF::ExtAPI::Operation']]],
|
|
57
56
|
['argsofuncalledfunction',['argsOfUncalledFunction',['../classSVF_1_1SVFModule.html#a90bd61848ffbbb0bc30b33bf65d1cb6e',1,'SVF::SVFModule']]],
|
|
58
57
|
['atend',['AtEnd',['../classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html#aa28c3c88d66d8bc3dbf96e2f4bd84fab',1,'SVF::SparseBitVector::SparseBitVectorIterator::AtEnd()'],['../classSVF_1_1CondPointsToSet_1_1CondPtsSetIterator.html#ad22614f30570619802e23715d1d5eaf0',1,'SVF::CondPointsToSet::CondPtsSetIterator::atEnd()']]],
|
|
59
58
|
['atptdata',['atPTData',['../classSVF_1_1MutableVersionedPTData.html#a3e5337d4189e98f11305491a9ef3c439',1,'SVF::MutableVersionedPTData::atPTData()'],['../classSVF_1_1PersistentVersionedPTData.html#a61b44f6d63cca013da2b278f47298473',1,'SVF::PersistentVersionedPTData::atPTData()']]],
|
|
@@ -28,7 +28,7 @@ var searchData=
|
|
|
28
28
|
['timeofprocessloadstore',['timeOfProcessLoadStore',['../classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf',1,'SVF::AndersenBase']]],
|
|
29
29
|
['timeofsccdetection',['timeOfSCCDetection',['../classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143',1,'SVF::AndersenBase']]],
|
|
30
30
|
['timeofsccmerges',['timeOfSCCMerges',['../classSVF_1_1AndersenBase.html#a02c5a50b214d36921e1404784e76704d',1,'SVF::AndersenBase']]],
|
|
31
|
-
['timeofssarenaming',['
|
|
31
|
+
['timeofssarenaming',['timeOfSSARenaming',['../classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd',1,'SVF::MemSSA::timeOfSSARenaming()'],['../classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773',1,'SVF::MemSSAStat::TimeOfSSARenaming()']]],
|
|
32
32
|
['timeofupdatecallgraph',['timeOfUpdateCallGraph',['../classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b',1,'SVF::AndersenBase']]],
|
|
33
33
|
['timestatmap',['timeStatMap',['../classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337',1,'SVF::PTAStat']]],
|
|
34
34
|
['tlptdata',['tlPTData',['../classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f',1,'SVF::MutableVersionedPTData::tlPTData()'],['../classSVF_1_1PersistentVersionedPTData.html#a29104a2d53d94805e142f778d3d21ad5',1,'SVF::PersistentVersionedPTData::tlPTData()']]],
|
|
@@ -5,7 +5,7 @@ var searchData=
|
|
|
5
5
|
['uniqueintersections',['uniqueIntersections',['../classSVF_1_1PersistentPointsToCache.html#a474023fe293b080fbda7da06ef380531',1,'SVF::PersistentPointsToCache']]],
|
|
6
6
|
['uniqueunions',['uniqueUnions',['../classSVF_1_1PersistentPointsToCache.html#aacebdd87b1dd45250391d035b032f9d4',1,'SVF::PersistentPointsToCache']]],
|
|
7
7
|
['unlocksites',['unlocksites',['../classSVF_1_1LockAnalysis.html#aec459af1d1624df55ffc95cd75655780',1,'SVF::LockAnalysis']]],
|
|
8
|
-
['updatecallgraphtime',['
|
|
8
|
+
['updatecallgraphtime',['updateCallGraphTime',['../classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07',1,'SVF::FlowSensitive::updateCallGraphTime()'],['../classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894',1,'SVF::PTAStat::UpdateCallGraphTime()']]],
|
|
9
9
|
['updatetime',['updateTime',['../classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226',1,'SVF::FlowSensitive']]],
|
|
10
10
|
['usedregs',['usedRegs',['../classSVF_1_1MemSSA.html#acf840b71b67cabe831f01f2d358f27fa',1,'SVF::MemSSA']]],
|
|
11
11
|
['usepcg',['UsePCG',['../classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762',1,'SVF::Options']]],
|
|
@@ -35,7 +35,7 @@ var searchData=
|
|
|
35
35
|
['numgtintregions',['NumGtIntRegions',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ad7cb36a1f0f67864fb8290e9dfd7b639',1,'SVF::NodeIDAllocator::Clusterer']]],
|
|
36
36
|
['numnodes',['numNodes',['../classSVF_1_1NodeIDAllocator.html#a8e76e0da58f0a5bdbd8118ac419cfa62',1,'SVF::NodeIDAllocator']]],
|
|
37
37
|
['numnontrivialregionobjects',['NumNonTrivialRegionObjects',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#a1bf9461c717e8dabaee6a57f3d76d61f',1,'SVF::NodeIDAllocator::Clusterer']]],
|
|
38
|
-
['numobjects',['
|
|
38
|
+
['numobjects',['NumObjects',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#afa74c5ccd22bebe0b76db33066d8b498',1,'SVF::NodeIDAllocator::Clusterer::NumObjects()'],['../classSVF_1_1NodeIDAllocator.html#a190c729a3f3f622f82cee4917946b50f',1,'SVF::NodeIDAllocator::numObjects()']]],
|
|
39
39
|
['numofactualin',['numOfActualIn',['../classSVF_1_1SVFGStat.html#a5365744d2ec3594e2255d274f7256569',1,'SVF::SVFGStat']]],
|
|
40
40
|
['numofactualout',['numOfActualOut',['../classSVF_1_1SVFGStat.html#a122555f5c4b9746cc2b7f38c7cd6b505',1,'SVF::SVFGStat']]],
|
|
41
41
|
['numofactualparam',['numOfActualParam',['../classSVF_1_1SVFGStat.html#a0494c59483520b57acdca95952c93d76',1,'SVF::SVFGStat']]],
|
|
@@ -98,7 +98,7 @@ var searchData=
|
|
|
98
98
|
['numofmhpld',['numOfMHPLd',['../classSVF_1_1MTAAnnotator.html#a29e0123620ab072fddc45331c6aa46e8',1,'SVF::MTAAnnotator']]],
|
|
99
99
|
['numofmhpqueries',['numOfMHPQueries',['../classSVF_1_1MHP.html#ab8bd382e0c70b0feb2a291ecc4043106',1,'SVF::MHP']]],
|
|
100
100
|
['numofmhpst',['numOfMHPSt',['../classSVF_1_1MTAAnnotator.html#a3a53e90b4f361d1298983bc89795b3d2',1,'SVF::MTAAnnotator']]],
|
|
101
|
-
['numofmssaphi',['
|
|
101
|
+
['numofmssaphi',['numOfMSSAPhi',['../classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360',1,'SVF::SVFGStat::numOfMSSAPhi()'],['../classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d',1,'SVF::MemSSAStat::NumOfMSSAPhi()']]],
|
|
102
102
|
['numofnewsvfgedges',['numOfNewSVFGEdges',['../classSVF_1_1MTASVFGBuilder.html#a019a4597074fdad6e51d936ed4ead0d9',1,'SVF::MTASVFGBuilder']]],
|
|
103
103
|
['numofnodes',['numOfNodes',['../classSVF_1_1ICFGStat.html#a8e71a19c266aacd7acb1fee6bb339788',1,'SVF::ICFGStat::numOfNodes()'],['../classSVF_1_1SVFGStat.html#ab499c24856a990dd4adb366107eb3302',1,'SVF::SVFGStat::numOfNodes()']]],
|
|
104
104
|
['numofnodesincycles',['NumOfNodesInCycles',['../classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5',1,'SVF::PTAStat']]],
|
|
@@ -136,7 +136,7 @@ var searchData=
|
|
|
136
136
|
['numofretnodes',['numOfRetNodes',['../classSVF_1_1ICFGStat.html#ac9bfce40c058ed7ab178fe1f1818e9de',1,'SVF::ICFGStat']]],
|
|
137
137
|
['numofreturns',['NumOfReturns',['../classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514',1,'SVF::PTAStat']]],
|
|
138
138
|
['numofscc',['numOfSCC',['../classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3',1,'SVF::FlowSensitive']]],
|
|
139
|
-
['numofsccdetection',['
|
|
139
|
+
['numofsccdetection',['numOfSCCDetection',['../classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968',1,'SVF::AndersenBase::numOfSCCDetection()'],['../classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699',1,'SVF::PTAStat::NumOfSCCDetection()']]],
|
|
140
140
|
['numofsfr',['NumOfSfr',['../classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135',1,'SVF::PTAStat']]],
|
|
141
141
|
['numofsfrs',['numOfSfrs',['../classSVF_1_1AndersenBase.html#a25b00d9ca71cbdd27530fc5d0dc84ee5',1,'SVF::AndersenBase']]],
|
|
142
142
|
['numofstackobjs',['NumOfStackObjs',['../classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e',1,'SVF::PTAStat']]],
|
|
@@ -9,9 +9,10 @@ var searchData=
|
|
|
9
9
|
['offsetvalues',['offsetValues',['../classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30',1,'SVF::LocationSet']]],
|
|
10
10
|
['onstack',['onStack',['../structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html#a0eb5f6b9985b9b512a76537d55b092b5',1,'SVF::VersionedFlowSensitive::SCC::NodeData']]],
|
|
11
11
|
['ontheflyiterbudgetforstat',['OnTheFlyIterBudgetForStat',['../classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac',1,'SVF::PointerAnalysis']]],
|
|
12
|
-
['
|
|
12
|
+
['op',['op',['../classSVF_1_1ExtAPI_1_1Operation.html#a1e8979a53cf1edb5df00a5f28b6c19e9',1,'SVF::ExtAPI::Operation']]],
|
|
13
13
|
['opcode',['opcode',['../classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a',1,'SVF::BinaryOPStmt::opcode()'],['../classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6',1,'SVF::UnaryOPStmt::opcode()']]],
|
|
14
|
-
['
|
|
14
|
+
['operands',['operands',['../classSVF_1_1ExtAPI_1_1Operation.html#ae3539c507b6284b849c136418507e72b',1,'SVF::ExtAPI::Operation']]],
|
|
15
|
+
['operandstr',['operandStr',['../classSVF_1_1ExtAPI_1_1Operation.html#a56d03123021f1f628361a4080fa573ce',1,'SVF::ExtAPI::Operation']]],
|
|
15
16
|
['opicfgnodes',['opICFGNodes',['../classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5',1,'SVF::PhiStmt']]],
|
|
16
17
|
['opincomingbbs',['opIncomingBBs',['../classSVF_1_1IntraPHIVFGNode.html#a73f39a488ad82300010abd18afe247a4',1,'SVF::IntraPHIVFGNode']]],
|
|
17
18
|
['opit',['OpIt',['../classllvm_1_1generic__bridge__gep__type__iterator.html#aa3fd4dca27e09df9ee726879624ae47e',1,'llvm::generic_bridge_gep_type_iterator']]],
|
|
@@ -240,7 +240,7 @@ protected:
|
|
|
240
240
|
|
|
241
241
|
/// Handle external call
|
|
242
242
|
//@{
|
|
243
|
-
virtual
|
|
243
|
+
virtual void parseOperations(std::vector<ExtAPI::Operation> &operations, CallSite cs);
|
|
244
244
|
virtual void handleExtCall(CallSite cs, const SVFFunction *F);
|
|
245
245
|
void addComplexConsForExt(Value *D, Value *S, const Value* sz);
|
|
246
246
|
//@}
|
package/include/Util/ExtAPI.h
CHANGED
|
@@ -102,19 +102,6 @@ Here we use regular expressions "(AN)(R|RN)^*" to represent parameters, for exam
|
|
|
102
102
|
class ExtAPI
|
|
103
103
|
{
|
|
104
104
|
public:
|
|
105
|
-
enum extf_t
|
|
106
|
-
{
|
|
107
|
-
EXT_ADDR = 0, // Handle addr edge
|
|
108
|
-
EXT_COPY, // Handle copy edge
|
|
109
|
-
EXT_LOAD, // Handle load edge
|
|
110
|
-
EXT_STORE, // Handle store edge
|
|
111
|
-
EXT_GEP, // Handle gep edge
|
|
112
|
-
EXT_COPY_N, // Copy the character c (an unsigned char) to the first n characters of the string pointed to, by the argument str
|
|
113
|
-
EXT_COPY_MN, // Copies n characters from memory area src to memory area dest.
|
|
114
|
-
EXT_FUNPTR, // Handle function void *dlsym(void *handle, const char *symbol)
|
|
115
|
-
EXT_COMPLEX, // Handle function _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_
|
|
116
|
-
EXT_OTHER
|
|
117
|
-
};
|
|
118
105
|
|
|
119
106
|
// External Function types
|
|
120
107
|
// Assume a call in the form LHS= F(arg0, arg1, arg2, arg3).
|
|
@@ -163,18 +150,6 @@ public:
|
|
|
163
150
|
};
|
|
164
151
|
|
|
165
152
|
private:
|
|
166
|
-
std::map<std::string, extf_t> op_pair =
|
|
167
|
-
{
|
|
168
|
-
{"addr", EXT_ADDR},
|
|
169
|
-
{"copy", EXT_COPY},
|
|
170
|
-
{"load", EXT_LOAD},
|
|
171
|
-
{"store", EXT_STORE},
|
|
172
|
-
{"gep", EXT_GEP},
|
|
173
|
-
{"copy_n", EXT_COPY_N},
|
|
174
|
-
{"copy_mn", EXT_COPY_MN},
|
|
175
|
-
{"complex", EXT_COMPLEX},
|
|
176
|
-
{"funptr", EXT_FUNPTR}
|
|
177
|
-
};
|
|
178
153
|
|
|
179
154
|
std::map<std::string, extType> type_pair =
|
|
180
155
|
{
|
|
@@ -226,38 +201,36 @@ public:
|
|
|
226
201
|
|
|
227
202
|
class Operation
|
|
228
203
|
{
|
|
229
|
-
public:
|
|
230
|
-
|
|
231
204
|
public:
|
|
232
205
|
Operation() {};
|
|
233
206
|
|
|
234
|
-
Operation(std::string
|
|
207
|
+
Operation(std::string opn, std::vector<std::string> varstr) : op(opn), operandStr(varstr) {};
|
|
235
208
|
|
|
236
|
-
std::string
|
|
209
|
+
std::string getOperator()
|
|
237
210
|
{
|
|
238
|
-
return
|
|
211
|
+
return op;
|
|
239
212
|
}
|
|
240
213
|
|
|
241
|
-
std::vector<std::string>
|
|
214
|
+
std::vector<std::string> getOperandStr()
|
|
242
215
|
{
|
|
243
|
-
return
|
|
216
|
+
return operandStr;
|
|
244
217
|
}
|
|
245
218
|
|
|
246
|
-
|
|
219
|
+
std::vector<NodeID> getOperands()
|
|
247
220
|
{
|
|
248
|
-
|
|
221
|
+
return operands;
|
|
249
222
|
}
|
|
250
223
|
|
|
251
|
-
void
|
|
224
|
+
void setOperands(std::vector<NodeID> vars)
|
|
252
225
|
{
|
|
253
|
-
|
|
226
|
+
operands = vars;
|
|
254
227
|
}
|
|
255
228
|
|
|
256
229
|
private:
|
|
257
|
-
std::string
|
|
258
|
-
std::vector<std::string>
|
|
230
|
+
std::string op;
|
|
231
|
+
std::vector<std::string> operandStr;
|
|
232
|
+
std::vector<NodeID> operands;
|
|
259
233
|
};
|
|
260
|
-
|
|
261
234
|
static ExtAPI *getExtAPI(const std::string & = "");
|
|
262
235
|
|
|
263
236
|
static void destory();
|
|
@@ -271,11 +244,13 @@ public:
|
|
|
271
244
|
// return value >= 0 is an argument node
|
|
272
245
|
// return value = -1 is an inst node
|
|
273
246
|
// return value = -2 is a Dummy node
|
|
274
|
-
// return value = -
|
|
247
|
+
// return value = -3 is an object node
|
|
248
|
+
// return value = -4 is an offset
|
|
249
|
+
// return value = -5 is an illegal operand format
|
|
275
250
|
int getNodeIDType(std::string s);
|
|
276
251
|
|
|
277
252
|
// Get the corresponding name in ext_t, e.g. "EXT_ADDR" in {"addr", EXT_ADDR},
|
|
278
|
-
|
|
253
|
+
std::string get_opName(const std::string& s);
|
|
279
254
|
// opposite for extType
|
|
280
255
|
const std::string& extType_toString(extType type);
|
|
281
256
|
|
|
@@ -289,7 +264,7 @@ public:
|
|
|
289
264
|
cJSON *get_FunJson(const std::string &funName);
|
|
290
265
|
|
|
291
266
|
// Get all operations of an extern function
|
|
292
|
-
std::vector<
|
|
267
|
+
std::vector<Operation> getAllOperations(std::string funName);
|
|
293
268
|
|
|
294
269
|
// Get property of the operation, e.g. "EFT_A1R_A0R"
|
|
295
270
|
extType get_type(const SVF::SVFFunction *callee);
|