svf-tools 1.0.484 → 1.0.487
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/CFLAlias_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +60 -0
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +21 -14
- package/SVF-doxygen/html/html/ExtAPI_8h.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +14 -14
- package/SVF-doxygen/html/html/Options_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Options_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +38 -37
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
- package/SVF-doxygen/html/html/globals_func_g.html +6 -0
- package/SVF-doxygen/html/html/globals_g.html +8 -2
- package/SVF-doxygen/html/html/globals_s.html +6 -6
- package/SVF-doxygen/html/html/search/all_13.js +3 -3
- package/SVF-doxygen/html/html/search/all_7.js +2 -0
- package/SVF-doxygen/html/html/search/functions_6.js +2 -0
- package/include/Util/ExtAPI.h +1 -1
- package/{lib → include}/Util/ExtAPI.json +0 -0
- package/include/Util/Options.h +1 -1
- package/lib/Util/ExtAPI.cpp +69 -5
- package/lib/Util/Options.cpp +5 -5
- package/package.json +1 -1
|
@@ -2293,7 +2293,7 @@ Private Attributes</h2></td></tr>
|
|
|
2293
2293
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00108">SymbolTableInfo.cpp:108</a></div></div>
|
|
2294
2294
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a87ee08e81de307eb9c02889b6ed98dd5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a87ee08e81de307eb9c02889b6ed98dd5">SVF::SymbolTableInfo::getFlatternedElemType</a></div><div class="ttdeci">const Type * getFlatternedElemType(const Type *baseType, u32_t flatten_idx)</div><div class="ttdoc">Return the type of a flattened element given a flattened index. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00406">SymbolTableInfo.cpp:406</a></div></div>
|
|
2295
2295
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5c2abeb363081381c3dc939ab511e3f0"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">SVF::SVFUtil::isThreadForkCall</a></div><div class="ttdeci">bool isThreadForkCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00593">SVFUtil.h:593</a></div></div>
|
|
2296
|
-
<div class="ttc" id="classSVF_1_1ExtAPI_html_a1c95cd414e34e2b8b23c3b11c26e2a04"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1c95cd414e34e2b8b23c3b11c26e2a04">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
2296
|
+
<div class="ttc" id="classSVF_1_1ExtAPI_html_a1c95cd414e34e2b8b23c3b11c26e2a04"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1c95cd414e34e2b8b23c3b11c26e2a04">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00131">ExtAPI.cpp:131</a></div></div>
|
|
2297
2297
|
<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="SVFUtil_8h_source.html#l00379">SVFUtil.h:379</a></div></div>
|
|
2298
2298
|
<div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094aedaa8f975941f17692f993d8a8b6dd30"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094aedaa8f975941f17692f993d8a8b6dd30">SVF::ExtAPI::EXT_ADDR</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00111">ExtAPI.h:111</a></div></div>
|
|
2299
2299
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6f82e03d880257527bd9cb5978e05604"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604">SVF::SVFUtil::getProgFunction</a></div><div class="ttdeci">const SVFFunction * getProgFunction(SVFModule *svfModule, const std::string &funName)</div><div class="ttdoc">Get program entry function from module. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00418">SVFUtil.h:418</a></div></div>
|
|
@@ -2312,7 +2312,7 @@ Private Attributes</h2></td></tr>
|
|
|
2312
2312
|
<div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a9b961a2cf28f4ae48e8a120a65721669"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a9b961a2cf28f4ae48e8a120a65721669">SVF::ExtAPI::EXT_LOADSTORE</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00115">ExtAPI.h:115</a></div></div>
|
|
2313
2313
|
<div class="ttc" id="classSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00273">ICFG.cpp:273</a></div></div>
|
|
2314
2314
|
<div class="ttc" id="structcJSON_html_ab13084c574681593b12f6e0a3db0dcfc"><div class="ttname"><a href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">cJSON::type</a></div><div class="ttdeci">int type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00112">cJSON.h:112</a></div></div>
|
|
2315
|
-
<div class="ttc" id="classSVF_1_1ExtAPI_html_a906a3728bbcfb7a43ac0938ffcb3df23"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a906a3728bbcfb7a43ac0938ffcb3df23">SVF::ExtAPI::get_opArgs</a></div><div class="ttdeci">std::vector< std::string > get_opArgs(const cJSON *value)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
2315
|
+
<div class="ttc" id="classSVF_1_1ExtAPI_html_a906a3728bbcfb7a43ac0938ffcb3df23"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a906a3728bbcfb7a43ac0938ffcb3df23">SVF::ExtAPI::get_opArgs</a></div><div class="ttdeci">std::vector< std::string > get_opArgs(const cJSON *value)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00185">ExtAPI.cpp:185</a></div></div>
|
|
2316
2316
|
<div class="ttc" id="cuddInt_8c_html_a936a27e51e66afb57c2b3a12d78a238e"><div class="ttname"><a href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a></div><div class="ttdeci">static int * entry</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l08422">cuddInt.c:8422</a></div></div>
|
|
2317
2317
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4ea94b0a8d6da904ff9a6c1b0341b9cb"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4ea94b0a8d6da904ff9a6c1b0341b9cb">SVF::SVFIRBuilder::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00050">SVFIRBuilder.h:50</a></div></div>
|
|
2318
2318
|
<div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a4cb5ac4a19002023683c4ee47aabb802"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a4cb5ac4a19002023683c4ee47aabb802">SVF::SVFIRBuilder::getBaseTypeAndFlattenedFields</a></div><div class="ttdeci">const Type * getBaseTypeAndFlattenedFields(const Value *V, std::vector< LocationSet > &fields, const Value *sz)</div><div class="ttdoc">Get the base type and max offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l01017">SVFIRBuilder.cpp:1017</a></div></div>
|
|
@@ -79,6 +79,9 @@ $(function() {
|
|
|
79
79
|
<li>getenv()
|
|
80
80
|
: <a class="el" href="util_8h.html#aee28fd8a0e40b6d958f7d20348e45368">util.h</a>
|
|
81
81
|
</li>
|
|
82
|
+
<li>getJsonFile()
|
|
83
|
+
: <a class="el" href="ExtAPI_8cpp.html#a5e6188ceb5d9d599bd8f4ada2bd4e645">ExtAPI.cpp</a>
|
|
84
|
+
</li>
|
|
82
85
|
<li>getLargest()
|
|
83
86
|
: <a class="el" href="cuddInt_8c.html#a6506f1ae80b0f85d1e01da0db4a4f31a">cuddInt.c</a>
|
|
84
87
|
</li>
|
|
@@ -98,6 +101,9 @@ $(function() {
|
|
|
98
101
|
: <a class="el" href="util_8c.html#a6df944867e592afe693884f4395a7d6b">util.c</a>
|
|
99
102
|
, <a class="el" href="util_8h.html#a483a36453687145fd533bdb6694bad89">util.h</a>
|
|
100
103
|
</li>
|
|
104
|
+
<li>GetStdoutFromCommand()
|
|
105
|
+
: <a class="el" href="ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409">ExtAPI.cpp</a>
|
|
106
|
+
</li>
|
|
101
107
|
</ul>
|
|
102
108
|
</div><!-- contents -->
|
|
103
109
|
<!-- start footer part -->
|
|
@@ -100,6 +100,9 @@ $(function() {
|
|
|
100
100
|
<li>getenv()
|
|
101
101
|
: <a class="el" href="util_8h.html#aee28fd8a0e40b6d958f7d20348e45368">util.h</a>
|
|
102
102
|
</li>
|
|
103
|
+
<li>getJsonFile()
|
|
104
|
+
: <a class="el" href="ExtAPI_8cpp.html#a5e6188ceb5d9d599bd8f4ada2bd4e645">ExtAPI.cpp</a>
|
|
105
|
+
</li>
|
|
103
106
|
<li>getLargest()
|
|
104
107
|
: <a class="el" href="cuddInt_8c.html#a6506f1ae80b0f85d1e01da0db4a4f31a">cuddInt.c</a>
|
|
105
108
|
</li>
|
|
@@ -116,8 +119,11 @@ $(function() {
|
|
|
116
119
|
: <a class="el" href="cuddInt_8c.html#a048492e5cad979aad3c0540ff82a4824">cuddInt.c</a>
|
|
117
120
|
</li>
|
|
118
121
|
<li>getSoftDataLimit()
|
|
119
|
-
: <a class="el" href="
|
|
120
|
-
, <a class="el" href="
|
|
122
|
+
: <a class="el" href="util_8h.html#a483a36453687145fd533bdb6694bad89">util.h</a>
|
|
123
|
+
, <a class="el" href="util_8c.html#a6df944867e592afe693884f4395a7d6b">util.c</a>
|
|
124
|
+
</li>
|
|
125
|
+
<li>GetStdoutFromCommand()
|
|
126
|
+
: <a class="el" href="ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409">ExtAPI.cpp</a>
|
|
121
127
|
</li>
|
|
122
128
|
<li>global_error
|
|
123
129
|
: <a class="el" href="cJSON_8cpp.html#a6ff6e9678e47cf5347872008661d5846">cJSON.cpp</a>
|
|
@@ -206,13 +206,13 @@ $(function() {
|
|
|
206
206
|
: <a class="el" href="st_8h.html#ab10245506c3e5d053c75a902ec62a074">st.h</a>
|
|
207
207
|
, <a class="el" href="st_8c.html#a958c280b8f24c847ca511eaffd410f04">st.c</a>
|
|
208
208
|
</li>
|
|
209
|
+
<li>ST_NUMCMP
|
|
210
|
+
: <a class="el" href="st_8c.html#a2796b8bc2a5f15834d61a3519ad149d5">st.c</a>
|
|
211
|
+
</li>
|
|
209
212
|
<li>st_numcmp()
|
|
210
213
|
: <a class="el" href="st_8h.html#a65b35768bcf5b6f173b063b441a493db">st.h</a>
|
|
211
214
|
, <a class="el" href="st_8c.html#a0ba60ae98aae8e6dd21bbe3b485bcfbe">st.c</a>
|
|
212
215
|
</li>
|
|
213
|
-
<li>ST_NUMCMP
|
|
214
|
-
: <a class="el" href="st_8c.html#a2796b8bc2a5f15834d61a3519ad149d5">st.c</a>
|
|
215
|
-
</li>
|
|
216
216
|
<li>st_numhash()
|
|
217
217
|
: <a class="el" href="st_8h.html#a487317ef8c55ab34fb58ddfe47163b9e">st.h</a>
|
|
218
218
|
, <a class="el" href="st_8c.html#aede320ef4713f295a335b4da6e1d8358">st.c</a>
|
|
@@ -289,12 +289,12 @@ $(function() {
|
|
|
289
289
|
<li>Storebar
|
|
290
290
|
: <a class="el" href="CFLGrammar_8txt.html#a324fa20755f4b8f2e50e2e148f6fadbd">CFLGrammar.txt</a>
|
|
291
291
|
</li>
|
|
292
|
-
<li>storedd
|
|
293
|
-
: <a class="el" href="cuddInt_8c.html#a8ed518c7fe7ea969bd6981b71c37ec07">cuddInt.c</a>
|
|
294
|
-
</li>
|
|
295
292
|
<li>STOREDD
|
|
296
293
|
: <a class="el" href="cuddInt_8c.html#ad90b4208ba9aa22e8f37b1ce723cdcf5">cuddInt.c</a>
|
|
297
294
|
</li>
|
|
295
|
+
<li>storedd
|
|
296
|
+
: <a class="el" href="cuddInt_8c.html#a8ed518c7fe7ea969bd6981b71c37ec07">cuddInt.c</a>
|
|
297
|
+
</li>
|
|
298
298
|
<li>strcat()
|
|
299
299
|
: <a class="el" href="util_8h.html#ae726f8c6b65e180aacfb570a35dc8375">util.h</a>
|
|
300
300
|
</li>
|
|
@@ -53,7 +53,7 @@ var searchData=
|
|
|
53
53
|
['selfcycle',['SelfCycle',['../classSVF_1_1Options.html#a3ed96242ac56a05d057ebd11b23cf053',1,'SVF::Options']]],
|
|
54
54
|
['sentinel',['sentinel',['../structDdManager.html#a8679aac5ecef09b42b3cf11786d57139',1,'DdManager']]],
|
|
55
55
|
['seq',['SEQ',['../classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228a85142db6ed24203f054117f3a5110e2f',1,'SVF::NodeIDAllocator']]],
|
|
56
|
-
['set',['set',['../classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599',1,'SVF::CondStdSet::set()'],['../classSVF_1_1CondPointsToSet.html#aadf2576b55bbdb82d7affc8466c09861',1,'SVF::CondPointsToSet::set()'],['../classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa',1,'SVF::PointsTo::set()'],['../classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24',1,'SVF::CoreBitVector::set()'],['../lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf',1,'set(SOURCES epd.c st.c util.c mtr.c cuddInt.c) add_llvm_library(Cudd $: CMakeLists.txt'],['../tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75',1,'set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa Svf Cudd $: CMakeLists.txt']
|
|
56
|
+
['set',['set',['../classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599',1,'SVF::CondStdSet::set()'],['../classSVF_1_1CondPointsToSet.html#aadf2576b55bbdb82d7affc8466c09861',1,'SVF::CondPointsToSet::set()'],['../classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa',1,'SVF::PointsTo::set()'],['../classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24',1,'SVF::CoreBitVector::set()'],['../namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb',1,'SVF::Set()'],['../lib_2CUDD_2CMakeLists_8txt.html#a97d8d30dc013aa2acba4c146fdcb1acf',1,'set(SOURCES epd.c st.c util.c mtr.c cuddInt.c) add_llvm_library(Cudd $: CMakeLists.txt'],['../tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75',1,'set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa Svf Cudd $: CMakeLists.txt']]],
|
|
57
57
|
['setactualindef',['setActualINDef',['../classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac',1,'SVF::SVFGOPT']]],
|
|
58
58
|
['setallreachable',['setAllReachable',['../classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd',1,'SVF::ProgSlice']]],
|
|
59
59
|
['setattributekinds',['setAttributeKinds',['../classSVF_1_1GrammarBase.html#a1e1bf1e32bcd7c68ce789c2f9f6327c0',1,'SVF::GrammarBase']]],
|
|
@@ -248,7 +248,7 @@ var searchData=
|
|
|
248
248
|
['st_5fis_5fmember',['st_is_member',['../st_8h.html#a3e18b4a4f91b4188aa376a15ca372b9c',1,'st.h']]],
|
|
249
249
|
['st_5flookup',['st_lookup',['../st_8h.html#a0ed63fd0cb21b0a1fe502e84aa5563ef',1,'st_lookup(st_table *, void *, void *): st.c'],['../st_8c.html#a0664208425f99d5c88fe2a79c425756c',1,'st_lookup(st_table *table, void *key, void *value): st.c']]],
|
|
250
250
|
['st_5flookup_5fint',['st_lookup_int',['../st_8h.html#ab10245506c3e5d053c75a902ec62a074',1,'st_lookup_int(st_table *, void *, int *): st.c'],['../st_8c.html#a958c280b8f24c847ca511eaffd410f04',1,'st_lookup_int(st_table *table, void *key, int *value): st.c']]],
|
|
251
|
-
['st_5fnumcmp',['
|
|
251
|
+
['st_5fnumcmp',['ST_NUMCMP',['../st_8c.html#a2796b8bc2a5f15834d61a3519ad149d5',1,'ST_NUMCMP(): st.c'],['../st_8h.html#a65b35768bcf5b6f173b063b441a493db',1,'st_numcmp(const char *, const char *): st.c'],['../st_8c.html#a0ba60ae98aae8e6dd21bbe3b485bcfbe',1,'st_numcmp(const char *x, const char *y): st.c']]],
|
|
252
252
|
['st_5fnumhash',['st_numhash',['../st_8h.html#a487317ef8c55ab34fb58ddfe47163b9e',1,'st_numhash(char *, int): st.c'],['../st_8c.html#aede320ef4713f295a335b4da6e1d8358',1,'st_numhash(char *x, int size): st.c'],['../st_8c.html#a76573cced143d429f99bfb5e286c621e',1,'ST_NUMHASH(): st.c']]],
|
|
253
253
|
['st_5fout_5fof_5fmem',['ST_OUT_OF_MEM',['../st_8h.html#a1276d6ae80c20ae2ec082db7c502ef75',1,'st.h']]],
|
|
254
254
|
['st_5fpficpcp',['ST_PFICPCP',['../st_8h.html#afb91ce58b9010645ed1cdf1ed2b76b03',1,'st.h']]],
|
|
@@ -309,7 +309,7 @@ var searchData=
|
|
|
309
309
|
['storecgedge',['StoreCGEdge',['../classSVF_1_1StoreCGEdge.html',1,'SVF::StoreCGEdge'],['../classSVF_1_1StoreCGEdge.html#a667b277ef845b866d3b11a7fbfce0815',1,'SVF::StoreCGEdge::StoreCGEdge()'],['../classSVF_1_1StoreCGEdge.html#a0f873b0be0ac726e412171119c5b3a50',1,'SVF::StoreCGEdge::StoreCGEdge(const StoreCGEdge &)'],['../classSVF_1_1StoreCGEdge.html#afdba4e02b1ccdc19fdc18bbe43363e79',1,'SVF::StoreCGEdge::StoreCGEdge(ConstraintNode *s, ConstraintNode *d, EdgeID id)']]],
|
|
310
310
|
['storecgedgeset',['StoreCGEdgeSet',['../classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025',1,'SVF::ConstraintGraph']]],
|
|
311
311
|
['storechi',['StoreCHI',['../classSVF_1_1StoreCHI.html',1,'SVF::StoreCHI< Cond >'],['../classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79',1,'SVF::StoreCHI::StoreCHI()'],['../classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b',1,'SVF::SVFG::STORECHI()'],['../classSVF_1_1MemSSA.html#a150e9d53ced1c143bba2d1026f739fa4',1,'SVF::MemSSA::STORECHI()']]],
|
|
312
|
-
['storedd',['
|
|
312
|
+
['storedd',['STOREDD',['../cuddInt_8c.html#ad90b4208ba9aa22e8f37b1ce723cdcf5',1,'STOREDD(): cuddInt.c'],['../cuddInt_8c.html#a8ed518c7fe7ea969bd6981b71c37ec07',1,'storedd(): cuddInt.c']]],
|
|
313
313
|
['storedstnodes',['storeDstNodes',['../classSVF_1_1AliasDDAClient.html#aaad2197cec53f7eae91b3c57c168447a',1,'SVF::AliasDDAClient']]],
|
|
314
314
|
['storeedgelabelcounter',['storeEdgeLabelCounter',['../classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27',1,'SVF::SVFStmt']]],
|
|
315
315
|
['storeedges',['StoreEdges',['../classSVF_1_1OfflineConsG.html#a9880cb387e24fa2c87297487411f95ea',1,'SVF::OfflineConsG']]],
|
|
@@ -418,6 +418,7 @@ var searchData=
|
|
|
418
418
|
['getjoinedthread',['getJoinedThread',['../classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4',1,'SVF::ForkJoinAnalysis::getJoinedThread()'],['../classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434',1,'SVF::ThreadAPI::getJoinedThread(const Instruction *inst) const'],['../classSVF_1_1ThreadAPI.html#adf4350f4ef5a8d845806ab99591efa93',1,'SVF::ThreadAPI::getJoinedThread(CallSite cs) const']]],
|
|
419
419
|
['getjoinloop',['getJoinLoop',['../classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49',1,'SVF::ForkJoinAnalysis::getJoinLoop()'],['../classSVF_1_1TCT.html#a52a707bf6f278e810f440c279f5261dc',1,'SVF::TCT::getJoinLoop()']]],
|
|
420
420
|
['getjoinsites',['getJoinSites',['../classSVF_1_1ThreadCallGraph.html#aa8be8d48d680b3f2e61b2d8af5e9eddc',1,'SVF::ThreadCallGraph']]],
|
|
421
|
+
['getjsonfile',['getJsonFile',['../ExtAPI_8cpp.html#a5e6188ceb5d9d599bd8f4ada2bd4e645',1,'ExtAPI.cpp']]],
|
|
421
422
|
['getkind',['getKind',['../classSVF_1_1CommonCHGraph.html#adf2a02fff9d7dd9fc9d92121e5e28f8b',1,'SVF::CommonCHGraph::getKind()'],['../classSVF_1_1PTACallGraph.html#ac6a294ec1c88862c8f7d54000f04e1f7',1,'SVF::PTACallGraph::getKind()'],['../classSVF_1_1VFG.html#ad63c3c11162ba107a6338fb24f9018d7',1,'SVF::VFG::getKind()'],['../classSVF_1_1SVFValue.html#a2ba3206a8461ef82713264e235128826',1,'SVF::SVFValue::getKind()']]],
|
|
422
423
|
['getkind2attrsmap',['getKind2AttrsMap',['../classSVF_1_1GrammarBase.html#ae28fea79c05ba05fc8c2e67b194e42b9',1,'SVF::GrammarBase::getKind2AttrsMap()'],['../classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd',1,'SVF::CFLGraphBuilder::getKind2AttrsMap()']]],
|
|
423
424
|
['getkind2labelmap',['getKind2LabelMap',['../classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd',1,'SVF::CFLGraphBuilder']]],
|
|
@@ -656,6 +657,7 @@ var searchData=
|
|
|
656
657
|
['getstartkind',['getStartKind',['../classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b',1,'SVF::GrammarBase::getStartKind()'],['../classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4',1,'SVF::CFLGraph::getStartKind()']]],
|
|
657
658
|
['getstartroutineofcxtthread',['getStartRoutineOfCxtThread',['../classSVF_1_1TCT.html#a7ccacac1c673b38215b90e4eb480581f',1,'SVF::TCT']]],
|
|
658
659
|
['getstat',['getStat',['../classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137',1,'SVF::SVFG::getStat()'],['../classSVF_1_1PointerAnalysis.html#a0ebf1138011aa526d92470c1931313ad',1,'SVF::PointerAnalysis::getStat()']]],
|
|
660
|
+
['getstdoutfromcommand',['GetStdoutFromCommand',['../ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409',1,'ExtAPI.cpp']]],
|
|
659
661
|
['getstmt',['getStmt',['../classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6',1,'SVF::CxtStmt']]],
|
|
660
662
|
['getstmtreliance',['getStmtReliance',['../classSVF_1_1VersionedFlowSensitive.html#a3489def8e16e4d7c83d2c909d3287fc0',1,'SVF::VersionedFlowSensitive']]],
|
|
661
663
|
['getstmtvfgnode',['getStmtVFGNode',['../classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6',1,'SVF::VFG']]],
|
|
@@ -356,6 +356,7 @@ var searchData=
|
|
|
356
356
|
['getjoinedthread',['getJoinedThread',['../classSVF_1_1ForkJoinAnalysis.html#ada1e56dfe2d64ea6310142a346c86ed4',1,'SVF::ForkJoinAnalysis::getJoinedThread()'],['../classSVF_1_1ThreadAPI.html#ac9f3cc080275ce7d76dd2f56fc7c6434',1,'SVF::ThreadAPI::getJoinedThread(const Instruction *inst) const'],['../classSVF_1_1ThreadAPI.html#adf4350f4ef5a8d845806ab99591efa93',1,'SVF::ThreadAPI::getJoinedThread(CallSite cs) const']]],
|
|
357
357
|
['getjoinloop',['getJoinLoop',['../classSVF_1_1ForkJoinAnalysis.html#a3449439792a54c847c67b3041094db49',1,'SVF::ForkJoinAnalysis::getJoinLoop()'],['../classSVF_1_1TCT.html#a52a707bf6f278e810f440c279f5261dc',1,'SVF::TCT::getJoinLoop()']]],
|
|
358
358
|
['getjoinsites',['getJoinSites',['../classSVF_1_1ThreadCallGraph.html#aa8be8d48d680b3f2e61b2d8af5e9eddc',1,'SVF::ThreadCallGraph']]],
|
|
359
|
+
['getjsonfile',['getJsonFile',['../ExtAPI_8cpp.html#a5e6188ceb5d9d599bd8f4ada2bd4e645',1,'ExtAPI.cpp']]],
|
|
359
360
|
['getkind',['getKind',['../classSVF_1_1CommonCHGraph.html#adf2a02fff9d7dd9fc9d92121e5e28f8b',1,'SVF::CommonCHGraph::getKind()'],['../classSVF_1_1PTACallGraph.html#ac6a294ec1c88862c8f7d54000f04e1f7',1,'SVF::PTACallGraph::getKind()'],['../classSVF_1_1VFG.html#ad63c3c11162ba107a6338fb24f9018d7',1,'SVF::VFG::getKind()'],['../classSVF_1_1SVFValue.html#a2ba3206a8461ef82713264e235128826',1,'SVF::SVFValue::getKind()']]],
|
|
360
361
|
['getkind2attrsmap',['getKind2AttrsMap',['../classSVF_1_1GrammarBase.html#ae28fea79c05ba05fc8c2e67b194e42b9',1,'SVF::GrammarBase::getKind2AttrsMap()'],['../classSVF_1_1CFLGraphBuilder.html#a61d935099e0f8408fb2f2f91001cb2fd',1,'SVF::CFLGraphBuilder::getKind2AttrsMap()']]],
|
|
361
362
|
['getkind2labelmap',['getKind2LabelMap',['../classSVF_1_1CFLGraphBuilder.html#ac8482350ceb21d626dcf1f30db737acd',1,'SVF::CFLGraphBuilder']]],
|
|
@@ -594,6 +595,7 @@ var searchData=
|
|
|
594
595
|
['getstartkind',['getStartKind',['../classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b',1,'SVF::GrammarBase::getStartKind()'],['../classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4',1,'SVF::CFLGraph::getStartKind()']]],
|
|
595
596
|
['getstartroutineofcxtthread',['getStartRoutineOfCxtThread',['../classSVF_1_1TCT.html#a7ccacac1c673b38215b90e4eb480581f',1,'SVF::TCT']]],
|
|
596
597
|
['getstat',['getStat',['../classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137',1,'SVF::SVFG::getStat()'],['../classSVF_1_1PointerAnalysis.html#a0ebf1138011aa526d92470c1931313ad',1,'SVF::PointerAnalysis::getStat()']]],
|
|
598
|
+
['getstdoutfromcommand',['GetStdoutFromCommand',['../ExtAPI_8cpp.html#acf93365b9c9e5e35c979a671ee600409',1,'ExtAPI.cpp']]],
|
|
597
599
|
['getstmt',['getStmt',['../classSVF_1_1CxtStmt.html#a5e8c4b10eb5c3240d2e21a020ed834a6',1,'SVF::CxtStmt']]],
|
|
598
600
|
['getstmtreliance',['getStmtReliance',['../classSVF_1_1VersionedFlowSensitive.html#a3489def8e16e4d7c83d2c909d3287fc0',1,'SVF::VersionedFlowSensitive']]],
|
|
599
601
|
['getstmtvfgnode',['getStmtVFGNode',['../classSVF_1_1VFG.html#a32b1586d326fbe47080bd1fa2d3270e6',1,'SVF::VFG']]],
|
package/include/Util/ExtAPI.h
CHANGED
|
File without changes
|
package/include/Util/Options.h
CHANGED
|
@@ -248,8 +248,8 @@ public:
|
|
|
248
248
|
static const llvm::cl::opt<bool> ShowHiddenNode;
|
|
249
249
|
|
|
250
250
|
// CFL option
|
|
251
|
-
static const llvm::cl::opt<std::string> InputFilename;
|
|
252
251
|
static const llvm::cl::opt<std::string> GrammarFilename;
|
|
252
|
+
static const llvm::cl::opt<std::string> InputFilename;
|
|
253
253
|
static const llvm::cl::opt<bool> GraphIsFromDot;
|
|
254
254
|
static const llvm::cl::opt<bool> PrintCFL;
|
|
255
255
|
static const llvm::cl::opt<bool> FlexSymMap;
|
package/lib/Util/ExtAPI.cpp
CHANGED
|
@@ -69,11 +69,69 @@ std::string ExtAPI::get_name(const SVFFunction *F)
|
|
|
69
69
|
return funName;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
std::string GetStdoutFromCommand(std::string command)
|
|
73
|
+
{
|
|
74
|
+
char buffer[128];
|
|
75
|
+
std::string result = "";
|
|
76
|
+
|
|
77
|
+
// Open pipe to file
|
|
78
|
+
FILE *pipe = popen(command.c_str(), "r");
|
|
79
|
+
if (!pipe)
|
|
80
|
+
{
|
|
81
|
+
return "popen failed!";
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// read till end of process:
|
|
85
|
+
while (!feof(pipe))
|
|
86
|
+
{
|
|
87
|
+
|
|
88
|
+
// use buffer to read and add to result
|
|
89
|
+
if (fgets(buffer, 128, pipe) != NULL)
|
|
90
|
+
result += buffer;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
pclose(pipe);
|
|
94
|
+
// remove "\n"
|
|
95
|
+
result.erase(remove(result.begin(), result.end(), '\n'), result.end());
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Get ExtAPI.json
|
|
100
|
+
FILE *getJsonFile(std::string path)
|
|
101
|
+
{
|
|
102
|
+
std::string jsonFilePath = GetStdoutFromCommand(path);
|
|
103
|
+
if (path.compare("npm root") == 0)
|
|
104
|
+
{
|
|
105
|
+
std::string json_path = "";
|
|
106
|
+
int os_flag = 1;
|
|
107
|
+
#ifdef linux
|
|
108
|
+
os_flag = 0;
|
|
109
|
+
json_path = "/svf-lib/SVF-linux";
|
|
110
|
+
#endif
|
|
111
|
+
if (os_flag == 1)
|
|
112
|
+
{
|
|
113
|
+
json_path = "/svf-lib/SVF-osx";
|
|
114
|
+
}
|
|
115
|
+
jsonFilePath.append(json_path);
|
|
116
|
+
}
|
|
117
|
+
jsonFilePath.append(EXTAPI_JSON_PATH);
|
|
118
|
+
FILE *file = nullptr;
|
|
119
|
+
file = fopen(jsonFilePath.c_str(), "r");
|
|
120
|
+
if (file != nullptr)
|
|
121
|
+
{
|
|
122
|
+
return file;
|
|
123
|
+
}
|
|
124
|
+
else
|
|
125
|
+
{
|
|
126
|
+
return nullptr;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
72
130
|
// Get specifications of external functions in ExtAPI.json file
|
|
73
131
|
cJSON *ExtAPI::get_FunJson(const std::string funName)
|
|
74
132
|
{
|
|
75
133
|
|
|
76
|
-
if(!root)
|
|
134
|
+
if (!root)
|
|
77
135
|
{
|
|
78
136
|
std::string jsonFilePath = PROJECT_PATH;
|
|
79
137
|
jsonFilePath.append(EXTAPI_JSON_PATH);
|
|
@@ -82,8 +140,16 @@ cJSON *ExtAPI::get_FunJson(const std::string funName)
|
|
|
82
140
|
file = fopen(jsonFilePath.c_str(), "r");
|
|
83
141
|
if (file == nullptr)
|
|
84
142
|
{
|
|
85
|
-
|
|
86
|
-
|
|
143
|
+
file = getJsonFile("$SVF_DIR");
|
|
144
|
+
if (file == nullptr)
|
|
145
|
+
{
|
|
146
|
+
file = getJsonFile("npm root");
|
|
147
|
+
if (file == nullptr)
|
|
148
|
+
{
|
|
149
|
+
assert(false && "Open Json file fails!");
|
|
150
|
+
return nullptr;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
87
153
|
}
|
|
88
154
|
// get file size
|
|
89
155
|
struct stat statbuf;
|
|
@@ -276,5 +342,3 @@ bool ExtAPI::is_ext(const SVFFunction *F)
|
|
|
276
342
|
}
|
|
277
343
|
return res;
|
|
278
344
|
}
|
|
279
|
-
|
|
280
|
-
|
package/lib/Util/Options.cpp
CHANGED
|
@@ -777,15 +777,15 @@ const llvm::cl::opt<bool> Options::ShowHiddenNode(
|
|
|
777
777
|
llvm::cl::desc("Show hidden nodes on DOT Graphs (e.g., isolated node on a graph)")
|
|
778
778
|
);
|
|
779
779
|
|
|
780
|
-
const llvm::cl::opt<std::string> Options::
|
|
781
|
-
|
|
782
|
-
llvm::cl::desc("<
|
|
780
|
+
const llvm::cl::opt<std::string> Options::GrammarFilename(
|
|
781
|
+
"grammar",
|
|
782
|
+
llvm::cl::desc("<Grammar textfile>"),
|
|
783
783
|
llvm::cl::init("-")
|
|
784
784
|
);
|
|
785
785
|
|
|
786
|
-
const llvm::cl::opt<std::string> Options::
|
|
786
|
+
const llvm::cl::opt<std::string> Options::InputFilename(
|
|
787
787
|
llvm::cl::Positional,
|
|
788
|
-
llvm::cl::desc("<
|
|
788
|
+
llvm::cl::desc("<input bitcode>"),
|
|
789
789
|
llvm::cl::init("-")
|
|
790
790
|
);
|
|
791
791
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.487",
|
|
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": {
|