svf-tools 1.0.488 → 1.0.491
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/CFGNormalizer_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +1 -1
- package/include/Util/ExtAPI.json +6 -6
- package/lib/CFL/CFGNormalizer.cpp +12 -14
- package/lib/SVF-FE/SVFIRBuilder.cpp +2 -2
- package/lib/Util/ExtAPI.cpp +1 -1
- package/package.json +1 -1
|
@@ -96,10 +96,11 @@ void CFGNormalizer::ebnf_bin(CFLGrammar *grammar)
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
auto
|
|
99
|
+
auto rawProductions = grammar->getRawProductions();
|
|
100
100
|
|
|
101
|
-
for(auto
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
|
@@ -1275,9 +1275,9 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
|
|
|
1275
1275
|
}
|
|
1276
1276
|
case ExtAPI::EXT_LOADSTORE:
|
|
1277
1277
|
{
|
|
1278
|
-
NodeID
|
|
1278
|
+
NodeID vnS = parseNode(args[0], cs, inst);
|
|
1279
1279
|
NodeID vnV = parseNode(args[1], cs, inst);
|
|
1280
|
-
NodeID
|
|
1280
|
+
NodeID vnD = parseNode(args[2], cs, inst);
|
|
1281
1281
|
if (vnD && vnV && vnS)
|
|
1282
1282
|
{
|
|
1283
1283
|
addLoadEdge(vnS, vnV);
|
package/lib/Util/ExtAPI.cpp
CHANGED
|
@@ -172,7 +172,7 @@ cJSON *ExtAPI::get_FunJson(const std::string funName)
|
|
|
172
172
|
}
|
|
173
173
|
free(jsonStr);
|
|
174
174
|
}
|
|
175
|
-
return
|
|
175
|
+
return cJSON_GetObjectItemCaseSensitive(root, funName.c_str());
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
// Get arguments of the operation, e.g. ["A1R", "A0", "A2"]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.491",
|
|
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": {
|