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.
Files changed (65) hide show
  1. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +38 -41
  2. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +70 -81
  3. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -4
  4. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +9 -10
  5. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
  6. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +24 -36
  7. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +141 -224
  8. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation-members.html +8 -7
  9. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +81 -56
  10. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +1 -1
  11. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +60 -76
  12. package/SVF-doxygen/html/html/functions_a.html +6 -9
  13. package/SVF-doxygen/html/html/functions_c.html +2 -2
  14. package/SVF-doxygen/html/html/functions_e.html +2 -35
  15. package/SVF-doxygen/html/html/functions_enum.html +0 -3
  16. package/SVF-doxygen/html/html/functions_eval_e.html +0 -30
  17. package/SVF-doxygen/html/html/functions_f.html +3 -3
  18. package/SVF-doxygen/html/html/functions_func_g.html +20 -17
  19. package/SVF-doxygen/html/html/functions_func_o.html +1 -1
  20. package/SVF-doxygen/html/html/functions_func_p.html +3 -3
  21. package/SVF-doxygen/html/html/functions_func_s.html +10 -13
  22. package/SVF-doxygen/html/html/functions_g.html +21 -18
  23. package/SVF-doxygen/html/html/functions_i.html +6 -6
  24. package/SVF-doxygen/html/html/functions_l.html +3 -3
  25. package/SVF-doxygen/html/html/functions_o.html +20 -17
  26. package/SVF-doxygen/html/html/functions_p.html +12 -14
  27. package/SVF-doxygen/html/html/functions_r.html +7 -5
  28. package/SVF-doxygen/html/html/functions_s.html +22 -23
  29. package/SVF-doxygen/html/html/functions_t.html +7 -5
  30. package/SVF-doxygen/html/html/functions_v.html +6 -6
  31. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  32. package/SVF-doxygen/html/html/functions_vars_o.html +7 -4
  33. package/SVF-doxygen/html/html/search/all_1.js +0 -1
  34. package/SVF-doxygen/html/html/search/all_10.js +10 -10
  35. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  36. package/SVF-doxygen/html/html/search/all_12.js +7 -8
  37. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  38. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  39. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  40. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  41. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  42. package/SVF-doxygen/html/html/search/all_5.js +0 -11
  43. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  44. package/SVF-doxygen/html/html/search/all_7.js +5 -4
  45. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  46. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  47. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  48. package/SVF-doxygen/html/html/search/all_f.js +6 -4
  49. package/SVF-doxygen/html/html/search/enums_3.js +0 -1
  50. package/SVF-doxygen/html/html/search/enumvalues_4.js +1 -11
  51. package/SVF-doxygen/html/html/search/functions_11.js +1 -2
  52. package/SVF-doxygen/html/html/search/functions_6.js +5 -4
  53. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  54. package/SVF-doxygen/html/html/search/functions_f.js +2 -2
  55. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  56. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  57. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  58. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  59. package/SVF-doxygen/html/html/search/variables_f.js +3 -2
  60. package/include/SVF-FE/SVFIRBuilder.h +1 -1
  61. package/include/Util/ExtAPI.h +17 -42
  62. package/include/Util/ExtAPI.json +1013 -989
  63. package/lib/SVF-FE/SVFIRBuilder.cpp +122 -222
  64. package/lib/Util/ExtAPI.cpp +53 -68
  65. 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
- ['parsenode',['parseNode',['../classSVF_1_1SVFIRBuilder.html#a1ad4f6ac06c1f3523661e7b2a0be09b5',1,'SVF::SVFIRBuilder']]],
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',['PointsTo',['../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)'],['../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)']]],
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',['TimeOfSSARenaming',['../classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773',1,'SVF::MemSSAStat::TimeOfSSARenaming()'],['../classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd',1,'SVF::MemSSA::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',['UpdateCallGraphTime',['../classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894',1,'SVF::PTAStat::UpdateCallGraphTime()'],['../classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07',1,'SVF::FlowSensitive::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',['numObjects',['../classSVF_1_1NodeIDAllocator.html#a190c729a3f3f622f82cee4917946b50f',1,'SVF::NodeIDAllocator::numObjects()'],['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#afa74c5ccd22bebe0b76db33066d8b498',1,'SVF::NodeIDAllocator::Clusterer::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',['NumOfMSSAPhi',['../classSVF_1_1MemSSAStat.html#a4b598cb1d06c4c0963787036862b1c3d',1,'SVF::MemSSAStat::NumOfMSSAPhi()'],['../classSVF_1_1SVFGStat.html#a9fc87025af3b7e54442e78f46ebe0360',1,'SVF::SVFGStat::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',['NumOfSCCDetection',['../classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699',1,'SVF::PTAStat::NumOfSCCDetection()'],['../classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968',1,'SVF::AndersenBase::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
- ['op_5fpair',['op_pair',['../classSVF_1_1ExtAPI.html#a495b6db60a6266b83cf511965a57f6a3',1,'SVF::ExtAPI']]],
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
- ['operation',['operation',['../classSVF_1_1ExtAPI_1_1Operation.html#ad5b7fd4408d5d33e2963008d30dcbdc9',1,'SVF::ExtAPI::Operation']]],
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 NodeID parseNode(std::string s, CallSite cs, const Instruction *inst);
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
  //@}
@@ -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 op, std::vector<std::string> args) : operation(op), args(args) {};
207
+ Operation(std::string opn, std::vector<std::string> varstr) : op(opn), operandStr(varstr) {};
235
208
 
236
- std::string getOperation()
209
+ std::string getOperator()
237
210
  {
238
- return operation;
211
+ return op;
239
212
  }
240
213
 
241
- std::vector<std::string> getArgs()
214
+ std::vector<std::string> getOperandStr()
242
215
  {
243
- return args;
216
+ return operandStr;
244
217
  }
245
218
 
246
- void setOperation(std::string op)
219
+ std::vector<NodeID> getOperands()
247
220
  {
248
- operation = op;
221
+ return operands;
249
222
  }
250
223
 
251
- void setArgs(std::vector<std::string> ags)
224
+ void setOperands(std::vector<NodeID> vars)
252
225
  {
253
- args = ags;
226
+ operands = vars;
254
227
  }
255
228
 
256
229
  private:
257
- std::string operation;
258
- std::vector<std::string> args;
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 = -2 is an illegal operand format
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
- extf_t get_opName(const std::string& s);
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<std::vector<ExtAPI::Operation *>> getAllOperations(std::string funName);
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);