svf-tools 1.0.621 → 1.0.623
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/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +52 -52
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +17 -15
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/SVFG_8h_source.html +37 -36
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +83 -83
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +32 -0
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +96 -95
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +157 -121
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +116 -115
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/html/functions_c.html +6 -6
- package/SVF-doxygen/html/html/functions_func_h.html +7 -4
- package/SVF-doxygen/html/html/functions_func_i.html +2 -2
- package/SVF-doxygen/html/html/functions_func_t.html +1 -0
- package/SVF-doxygen/html/html/functions_h.html +5 -2
- package/SVF-doxygen/html/html/functions_i.html +4 -4
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +9 -15
- package/SVF-doxygen/html/html/functions_s.html +15 -13
- package/SVF-doxygen/html/html/functions_t.html +7 -6
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/namespaceSVF.html +30 -30
- package/SVF-doxygen/html/html/search/all_10.js +5 -5
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +8 -8
- package/SVF-doxygen/html/html/search/all_13.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +1 -1
- package/SVF-doxygen/html/html/search/all_8.js +1 -0
- package/SVF-doxygen/html/html/search/all_9.js +3 -3
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_7.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/include/AbstractExecution/IntervalValue.h +5 -0
- package/include/Graphs/SVFG.h +6 -0
- package/include/Util/ExtAPI.h +65 -40
- package/package.json +1 -1
|
@@ -28,7 +28,7 @@ var searchData=
|
|
|
28
28
|
['timeofbuildingsvfir',['timeOfBuildingSVFIR',['../classSVF_1_1SVFStat.html#aea75388c973674686d1f2b7498b4095c',1,'SVF::SVFStat']]],
|
|
29
29
|
['timeofbuildingsymboltable',['timeOfBuildingSymbolTable',['../classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e',1,'SVF::SVFStat']]],
|
|
30
30
|
['timeofcollapse',['timeOfCollapse',['../classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25',1,'SVF::AndersenBase']]],
|
|
31
|
-
['timeofcreatemuchi',['
|
|
31
|
+
['timeofcreatemuchi',['timeOfCreateMUCHI',['../classSVF_1_1MemSSA.html#a4d2418b7df74f23d8fd328f66e29f198',1,'SVF::MemSSA::timeOfCreateMUCHI()'],['../classSVF_1_1MemSSAStat.html#a48c70f0ed1c7d031a3cd528035162e52',1,'SVF::MemSSAStat::TimeOfCreateMUCHI()']]],
|
|
32
32
|
['timeofgeneratingmemregions',['timeOfGeneratingMemRegions',['../classSVF_1_1MemSSA.html#a37dca8a7d155de4870358146d219b5e5',1,'SVF::MemSSA::timeOfGeneratingMemRegions()'],['../classSVF_1_1MemSSAStat.html#a74c36654b7452aa94aa241881f0a83c5',1,'SVF::MemSSAStat::TimeOfGeneratingMemRegions()']]],
|
|
33
33
|
['timeofinsertingphi',['timeOfInsertingPHI',['../classSVF_1_1MemSSA.html#a3c7b5fa73fdc7c805ee3673fbe812b44',1,'SVF::MemSSA::timeOfInsertingPHI()'],['../classSVF_1_1MemSSAStat.html#a0c24822c8549af6a96e82312954fab9b',1,'SVF::MemSSAStat::TimeOfInsertingPHI()']]],
|
|
34
34
|
['timeofnormalizegrammar',['timeOfNormalizeGrammar',['../classSVF_1_1CFLBase.html#ad4d65dd4c3e173d014199ac6b08a5261',1,'SVF::CFLBase']]],
|
|
@@ -37,7 +37,7 @@ var searchData=
|
|
|
37
37
|
['timeofsccdetection',['timeOfSCCDetection',['../classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143',1,'SVF::AndersenBase']]],
|
|
38
38
|
['timeofsccmerges',['timeOfSCCMerges',['../classSVF_1_1AndersenBase.html#a02c5a50b214d36921e1404784e76704d',1,'SVF::AndersenBase']]],
|
|
39
39
|
['timeofsolving',['timeOfSolving',['../classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8',1,'SVF::CFLBase']]],
|
|
40
|
-
['timeofssarenaming',['
|
|
40
|
+
['timeofssarenaming',['timeOfSSARenaming',['../classSVF_1_1MemSSA.html#a97ccd5e0b9ab6144415e26bdf95cbabd',1,'SVF::MemSSA::timeOfSSARenaming()'],['../classSVF_1_1MemSSAStat.html#a887ff23a7ea1a18f08b1744ff30da773',1,'SVF::MemSSAStat::TimeOfSSARenaming()']]],
|
|
41
41
|
['timeofupdatecallgraph',['timeOfUpdateCallGraph',['../classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b',1,'SVF::AndersenBase']]],
|
|
42
42
|
['timestatmap',['timeStatMap',['../classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831',1,'SVF::SVFStat']]],
|
|
43
43
|
['tlptdata',['tlPTData',['../classSVF_1_1MutableVersionedPTData.html#a01974968b7cf60a4231cc83c93b26d7f',1,'SVF::MutableVersionedPTData::tlPTData()'],['../classSVF_1_1PersistentVersionedPTData.html#a29104a2d53d94805e142f778d3d21ad5',1,'SVF::PersistentVersionedPTData::tlPTData()']]],
|
|
@@ -70,7 +70,7 @@ var searchData=
|
|
|
70
70
|
['type2typeinfo',['Type2TypeInfo',['../classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486',1,'SVF::LLVMModuleSet']]],
|
|
71
71
|
['type_5fpair',['type_pair',['../classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5',1,'SVF::ExtAPI']]],
|
|
72
72
|
['typedefs',['typedefs',['../classSVF_1_1DCHNode.html#abafa483be12690549fbcccaf4c3fa511',1,'SVF::DCHNode']]],
|
|
73
|
-
['typeinfo',['
|
|
73
|
+
['typeinfo',['typeinfo',['../classSVF_1_1SVFType.html#a86ea48a882823de2e3e906220dc0111e',1,'SVF::SVFType::typeinfo()'],['../classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf',1,'SVF::MemObj::typeInfo()']]],
|
|
74
74
|
['typename',['typeName',['../classSVF_1_1DCHNode.html#a8a7b412262af7a90c9ef583b6a8c10fc',1,'SVF::DCHNode']]],
|
|
75
75
|
['typeprint',['TypePrint',['../classSVF_1_1Options.html#a83103f0d5f166e0bb062aa7d7b393ddd',1,'SVF::Options']]],
|
|
76
76
|
['typesystem',['typeSystem',['../classSVF_1_1PointerAnalysis.html#a219baed92b811d5519b056ad393fceed',1,'SVF::PointerAnalysis']]]
|
|
@@ -28,6 +28,6 @@ var searchData=
|
|
|
28
28
|
['grammar',['grammar',['../classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503',1,'SVF::CFLBase::grammar()'],['../classSVF_1_1CFLSolver.html#aad88cf557ec43127de859b765505df49',1,'SVF::CFLSolver::grammar()'],['../classSVF_1_1GrammarBuilder.html#a7b81810150ce896801e4e6a831ab98aa',1,'SVF::GrammarBuilder::grammar()']]],
|
|
29
29
|
['grammarbase',['grammarBase',['../classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f',1,'SVF::CFLBase']]],
|
|
30
30
|
['grammarfilename',['GrammarFilename',['../classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f',1,'SVF::Options']]],
|
|
31
|
-
['graph',['
|
|
31
|
+
['graph',['Graph',['../structSVF_1_1Inverse.html#a2037408b7047e9265b4b14e54bb584a2',1,'SVF::Inverse::Graph()'],['../classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f',1,'SVF::CFLBase::graph()'],['../classSVF_1_1CFLSolver.html#aedd6c605c4c381c738f4c6682c40d9f2',1,'SVF::CFLSolver::graph()'],['../classSVF_1_1SVFGStat.html#a3d06ead4c3222ce8a0535d9f3d504c3d',1,'SVF::SVFGStat::graph()']]],
|
|
32
32
|
['graphtxt',['Graphtxt',['../classSVF_1_1Options.html#a53f783c80f368bcdca6c7620229d6f8e',1,'SVF::Options']]]
|
|
33
33
|
];
|
package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html
CHANGED
|
@@ -94,7 +94,7 @@ Public Types</h2></td></tr>
|
|
|
94
94
|
struct SVF::GenericGraphTraits< SVF::SVFG * ></h3>
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#
|
|
97
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00483">483</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
98
98
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
99
99
|
<a id="a0e3ed0946d46830533f184f12428bbb0"></a>
|
|
100
100
|
<h2 class="memtitle"><span class="permalink"><a href="#a0e3ed0946d46830533f184f12428bbb0">◆ </a></span>NodeRef</h2>
|
|
@@ -108,7 +108,7 @@ struct SVF::GenericGraphTraits< SVF::SVFG * ></h3>
|
|
|
108
108
|
</table>
|
|
109
109
|
</div><div class="memdoc">
|
|
110
110
|
|
|
111
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#
|
|
111
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8h_source.html#l00485">485</a> of file <a class="el" href="SVFG_8h_source.html">SVFG.h</a>.</p>
|
|
112
112
|
|
|
113
113
|
</div>
|
|
114
114
|
</div>
|
package/include/Graphs/SVFG.h
CHANGED
|
@@ -172,6 +172,12 @@ public:
|
|
|
172
172
|
return getSVFGNode(getDef(pagNode));
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
+
/// Given a pagNode, return whether it has definition site
|
|
176
|
+
inline bool hasDefSVFGNode(const PAGNode* pagNode) const
|
|
177
|
+
{
|
|
178
|
+
return hasDef(pagNode) && hasSVFGNode(getDef(pagNode));
|
|
179
|
+
}
|
|
180
|
+
|
|
175
181
|
/// Perform statistics
|
|
176
182
|
void performStat();
|
|
177
183
|
|
package/include/Util/ExtAPI.h
CHANGED
|
@@ -47,56 +47,81 @@ namespace SVF
|
|
|
47
47
|
|
|
48
48
|
** Specifications in ExtAPI.json
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
**** Overview of the Specification Language
|
|
51
51
|
The specification language of external functions is based on the JSON format. And every function defined by the Specification Language is an object that represents the specification rules. These Specification Language objects for functions contain four parts:
|
|
52
|
-
1. the
|
|
53
|
-
2. the
|
|
54
|
-
3. the
|
|
55
|
-
4. the
|
|
52
|
+
1. the signature of the function, (Mandatory)
|
|
53
|
+
2. the type of the function, (Mandatory)
|
|
54
|
+
3. the switch that controls whether the specification rules defined in the ExtAPI.json overwrite the functions defined in the user code, (Mandatory)
|
|
55
|
+
4. the side-effect of the function. (Optional)
|
|
56
56
|
|
|
57
|
-
*** [
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
overwrite_app_function = 1: Use specifications in ExtAPI.json to overwrite the user-defined functions.
|
|
57
|
+
*** [1] the signature of the function (Mandatory)
|
|
58
|
+
"return": return value type (Only care about whether the return value is a pointer during analysis)
|
|
59
|
+
"argument": argument types (Only care about the number of arguments during analysis)
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
|
|
62
|
+
*** [2] the type of the function (Mandatory)
|
|
63
63
|
Function type represents the properties of the function.
|
|
64
64
|
For example,
|
|
65
65
|
"EFT_ALLOC" represents if this external function allocates a new object and assigns it to one of its arguments,
|
|
66
66
|
For the selection of function type and a more detailed explanation, please refer to the definition of enum *extType* in ExtAPI.h.
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
|
|
69
|
+
*** [3] the switch that controls whether the specification rules defined in the ExtAPI.json overwrite the functions defined in the user code (Mandatory)
|
|
70
|
+
The switch *overwrite_app_function* controls whether the specification rules defined in the ExtAPI.json overwrite the functions defined in the user code (e.g., CPP files). When the switch *overwrite_app_function* is set to a value of 1, SVF will use the specification rules in ExtAPI.json to conduct the analysis and ignore the user-defined functions in the input CPP/bc files.
|
|
71
|
+
overwrite_app_function = 0: Analyze the user-defined functions.
|
|
72
|
+
overwrite_app_function = 1: Use specifications in ExtAPI.json to overwrite the user-defined functions.
|
|
73
|
+
|
|
74
|
+
For example, The following is the code to be analyzed, which has a foo() function,
|
|
75
|
+
--------------------------------------------------------
|
|
76
|
+
char* foo(char* arg)
|
|
77
|
+
{
|
|
78
|
+
return arg;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
int main()
|
|
82
|
+
{
|
|
83
|
+
char* ret = foo("abc");
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
--------------------------------------------------------
|
|
87
|
+
function foo() has a definition, but you want SVF not to use this definition when analyzing, and you think foo () should do nothing, Then you can add a new entry in ExtAPI.json, and set *"overwrite_app_function": 1*
|
|
88
|
+
"foo": {
|
|
89
|
+
"return": "char*",
|
|
90
|
+
"arguments": "(char*)",
|
|
91
|
+
"type": "EFT_NOOP",
|
|
92
|
+
"overwrite_app_function": 1
|
|
93
|
+
}
|
|
94
|
+
When SVF is analyzing foo(), SVF will use the entry you defined in ExtAPI.json, and ignore the actual definition of foo() in the program.
|
|
95
|
+
|
|
96
|
+
Most of the time, overwrite_app_function is 0, unless you want to redefine a function.
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
*** [4] the side-effect of the function (Optional, if there is no side-effect of that function)
|
|
100
|
+
Function side-effect indicate the relationships between input and output,
|
|
70
101
|
mainly between function parameters or between parameters and return values after the execution.
|
|
71
102
|
For example,
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
"
|
|
93
|
-
|
|
94
|
-
"overwrite_app_function:" 0/1,
|
|
95
|
-
"function operation_1": [ operand_1, operand_2, ... , operand_n],
|
|
96
|
-
"function operation_2": [ operand_1, operand_2, ... , operand_n],
|
|
97
|
-
...
|
|
98
|
-
"function operation_n": [ operand_1, operand_2, ... , operand_n]
|
|
99
|
-
}
|
|
103
|
+
"CopyStmt": ["Arg2", "Ret"] indicates that after this external function is executed, the value of the 2nd parameter is copied into the return value.
|
|
104
|
+
|
|
105
|
+
For operators of function operation, there are the following options:
|
|
106
|
+
"AddrStmt",
|
|
107
|
+
"CopyStmt",
|
|
108
|
+
"LoadStmt"
|
|
109
|
+
"StoreStmt",
|
|
110
|
+
"GepStmt",
|
|
111
|
+
"BinaryOPStmt",
|
|
112
|
+
"UnaryOPStmt",
|
|
113
|
+
"CmpStmt",
|
|
114
|
+
"memset_like": the function has similar side-effect to function "void *memset(void *str, int c, size_t n)",
|
|
115
|
+
"memcpy_like": the function has similar side-effect to function "void *memcpy(void *dest, const void * src, size_t n)",
|
|
116
|
+
"funptr_ops": the function has similar side-effect to function "void *dlsym(void *handle, const char *symbol)",
|
|
117
|
+
"Rb_tree_ops: the function has similar side-effect to function "_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_".
|
|
118
|
+
|
|
119
|
+
For operands of function operation,, there are the following options:
|
|
120
|
+
"Arg": represents a parameter,
|
|
121
|
+
"Obj": represents a object,
|
|
122
|
+
"Ret": represents a return value,
|
|
123
|
+
"Dummy": represents a dummy node.
|
|
124
|
+
|
|
100
125
|
*/
|
|
101
126
|
|
|
102
127
|
class ExtAPI
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.623",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|