svf-tools 1.0.486 → 1.0.489

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.
@@ -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="util_8c.html#a6df944867e592afe693884f4395a7d6b">util.c</a>
120
- , <a class="el" href="util_8h.html#a483a36453687145fd533bdb6694bad89">util.h</a>
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 $:&#160;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 $:&#160;CMakeLists.txt'],['../namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb',1,'SVF::Set()']]],
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 $:&#160;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 $:&#160;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 *):&#160;st.c'],['../st_8c.html#a0664208425f99d5c88fe2a79c425756c',1,'st_lookup(st_table *table, void *key, void *value):&#160;st.c']]],
250
250
  ['st_5flookup_5fint',['st_lookup_int',['../st_8h.html#ab10245506c3e5d053c75a902ec62a074',1,'st_lookup_int(st_table *, void *, int *):&#160;st.c'],['../st_8c.html#a958c280b8f24c847ca511eaffd410f04',1,'st_lookup_int(st_table *table, void *key, int *value):&#160;st.c']]],
251
- ['st_5fnumcmp',['st_numcmp',['../st_8h.html#a65b35768bcf5b6f173b063b441a493db',1,'st_numcmp(const char *, const char *):&#160;st.c'],['../st_8c.html#a0ba60ae98aae8e6dd21bbe3b485bcfbe',1,'st_numcmp(const char *x, const char *y):&#160;st.c'],['../st_8c.html#a2796b8bc2a5f15834d61a3519ad149d5',1,'ST_NUMCMP():&#160;st.c']]],
251
+ ['st_5fnumcmp',['ST_NUMCMP',['../st_8c.html#a2796b8bc2a5f15834d61a3519ad149d5',1,'ST_NUMCMP():&#160;st.c'],['../st_8h.html#a65b35768bcf5b6f173b063b441a493db',1,'st_numcmp(const char *, const char *):&#160;st.c'],['../st_8c.html#a0ba60ae98aae8e6dd21bbe3b485bcfbe',1,'st_numcmp(const char *x, const char *y):&#160;st.c']]],
252
252
  ['st_5fnumhash',['st_numhash',['../st_8h.html#a487317ef8c55ab34fb58ddfe47163b9e',1,'st_numhash(char *, int):&#160;st.c'],['../st_8c.html#aede320ef4713f295a335b4da6e1d8358',1,'st_numhash(char *x, int size):&#160;st.c'],['../st_8c.html#a76573cced143d429f99bfb5e286c621e',1,'ST_NUMHASH():&#160;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 &amp;)'],['../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&lt; Cond &gt;'],['../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',['storedd',['../cuddInt_8c.html#a8ed518c7fe7ea969bd6981b71c37ec07',1,'storedd():&#160;cuddInt.c'],['../cuddInt_8c.html#ad90b4208ba9aa22e8f37b1ce723cdcf5',1,'STOREDD():&#160;cuddInt.c']]],
312
+ ['storedd',['STOREDD',['../cuddInt_8c.html#ad90b4208ba9aa22e8f37b1ce723cdcf5',1,'STOREDD():&#160;cuddInt.c'],['../cuddInt_8c.html#a8ed518c7fe7ea969bd6981b71c37ec07',1,'storedd():&#160;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']]],
@@ -96,10 +96,11 @@ void CFGNormalizer::ebnf_bin(CFLGrammar *grammar)
96
96
  }
97
97
  }
98
98
 
99
- auto &rawProductions = grammar->getRawProductions();
99
+ auto rawProductions = grammar->getRawProductions();
100
100
 
101
- for(auto head : rawProductions)
101
+ for(auto itr : rawProductions)
102
102
  {
103
+ auto head = *(grammar->getRawProductions().find(itr.first));
103
104
  for(auto rule: head.second)
104
105
  {
105
106
  if (rule.size() < 3) continue;
@@ -203,20 +204,17 @@ void CFGNormalizer::ebnf_bin(CFLGrammar *grammar)
203
204
  RHX = tempSym;
204
205
  }
205
206
  }
206
-
207
-
208
- for (auto new_head : new_grammar)
207
+ }
208
+ }
209
+ for (auto new_head : new_grammar)
210
+ {
211
+ for (auto prod : new_head.second)
212
+ {
213
+ auto it = grammar->getRawProductions()[new_head.first].find(prod);
214
+ if (it == grammar->getRawProductions()[new_head.first].end())
209
215
  {
210
- for (auto prod : new_head.second)
211
- {
212
- auto it = grammar->getRawProductions()[new_head.first].find(prod);
213
- if (it == grammar->getRawProductions()[new_head.first].end())
214
- {
215
- grammar->getRawProductions()[new_head.first].insert(prod);
216
- }
217
- }
216
+ grammar->getRawProductions()[new_head.first].insert(prod);
218
217
  }
219
-
220
218
  }
221
219
  }
222
220
  }
@@ -69,12 +69,64 @@ std::string ExtAPI::get_name(const SVFFunction *F)
69
69
  return funName;
70
70
  }
71
71
 
72
+ // Get environment variables $SVF_DIR and "npm root" through popen() method
73
+ std::string GetStdoutFromCommand(std::string command)
74
+ {
75
+ char buffer[128];
76
+ std::string result = "";
77
+ // Open pipe to file
78
+ FILE *pipe = popen(command.c_str(), "r");
79
+ if (!pipe)
80
+ {
81
+ return "popen failed!";
82
+ }
83
+ // read till end of process:
84
+ while (!feof(pipe))
85
+ {
86
+ // use buffer to read and add to result
87
+ if (fgets(buffer, 128, pipe) != NULL)
88
+ result += buffer;
89
+ }
90
+ pclose(pipe);
91
+ // remove "\n"
92
+ result.erase(remove(result.begin(), result.end(), '\n'), result.end());
93
+ return result;
94
+ }
95
+
96
+ // Get ExtAPI.json file
97
+ FILE *getJsonFile(std::string path)
98
+ {
99
+ std::string jsonFilePath = GetStdoutFromCommand(path);
100
+ if (path.compare("npm root") == 0)
101
+ {
102
+ int os_flag = 1;
103
+ // SVF installed via npm needs to determine the type of operating system, otherwise the ExtAPI.json path may not be found
104
+ // Linux os
105
+ #ifdef linux
106
+ os_flag = 0;
107
+ jsonFilePath.append("/svf-lib/SVF-linux");
108
+ #endif
109
+ // Mac os
110
+ if (os_flag == 1)
111
+ {
112
+ jsonFilePath.append("/svf-lib/SVF-osx");
113
+ }
114
+ }
115
+ jsonFilePath.append(EXTAPI_JSON_PATH);
116
+ FILE *file = nullptr;
117
+ file = fopen(jsonFilePath.c_str(), "r");
118
+ return file;
119
+ }
120
+
72
121
  // Get specifications of external functions in ExtAPI.json file
73
122
  cJSON *ExtAPI::get_FunJson(const std::string funName)
74
123
  {
75
-
76
- if(!root)
124
+ if (!root)
77
125
  {
126
+ // Three ways to get ExtAPI.json path
127
+ // 1. default path(get ExtAPI.json path from Util/config.h)
128
+ // 2. from $SVF_DIR
129
+ // 3. from "npm root"(If SVF is installed via npm)
78
130
  std::string jsonFilePath = PROJECT_PATH;
79
131
  jsonFilePath.append(EXTAPI_JSON_PATH);
80
132
  // open file
@@ -82,8 +134,16 @@ cJSON *ExtAPI::get_FunJson(const std::string funName)
82
134
  file = fopen(jsonFilePath.c_str(), "r");
83
135
  if (file == nullptr)
84
136
  {
85
- assert("Open Json file fails!");
86
- return nullptr;
137
+ file = getJsonFile("$SVF_DIR");
138
+ if (file == nullptr)
139
+ {
140
+ file = getJsonFile("npm root");
141
+ if (file == nullptr)
142
+ {
143
+ assert(false && "Open ExtAPI.json file fails!");
144
+ return nullptr;
145
+ }
146
+ }
87
147
  }
88
148
  // get file size
89
149
  struct stat statbuf;
@@ -98,7 +158,7 @@ cJSON *ExtAPI::get_FunJson(const std::string funName)
98
158
  u32_t size = fread(jsonStr, sizeof(char), fileSize, file);
99
159
  if (size == 0)
100
160
  {
101
- assert("read Json file fails!");
161
+ assert(false && "Read ExtAPI.json file fails!");
102
162
  return nullptr;
103
163
  }
104
164
  fclose(file);
@@ -276,5 +336,3 @@ bool ExtAPI::is_ext(const SVFFunction *F)
276
336
  }
277
337
  return res;
278
338
  }
279
-
280
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.486",
3
+ "version": "1.0.489",
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": {