svf-tools 1.0.668 → 1.0.670
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.670",
|
|
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": {
|
|
@@ -105,10 +105,32 @@ LocationSet SymbolTableInfo::getModulusOffset(const MemObj* obj, const LocationS
|
|
|
105
105
|
offset = abs(offset);
|
|
106
106
|
}
|
|
107
107
|
u32_t maxOffset = obj->getMaxFieldOffsetLimit();
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
|
|
109
|
+
/*!
|
|
110
|
+
* @offset: the index allocated to the newly generated field node;
|
|
111
|
+
* @Options::MaxFieldLimit(): preset upper bound of field number;
|
|
112
|
+
* @maxOffset: the max field number of the base object;
|
|
113
|
+
*/
|
|
114
|
+
if (maxOffset == 0)
|
|
111
115
|
offset = 0;
|
|
116
|
+
else if (Options::MaxFieldLimit() < maxOffset)
|
|
117
|
+
/*!
|
|
118
|
+
* E.g., offset == 260, maxOffset == 270, Options::MaxFieldLimit() == 256 ==> offset = 4
|
|
119
|
+
*/
|
|
120
|
+
offset = offset % maxOffset;
|
|
121
|
+
else if ((u32_t)offset > maxOffset - 1)
|
|
122
|
+
{
|
|
123
|
+
if (Options::CyclicFldIdx())
|
|
124
|
+
/*!
|
|
125
|
+
* E.g., offset == 100, maxOffset == 98, Options::MaxFieldLimit() == 256 ==> offset = 2
|
|
126
|
+
*/
|
|
127
|
+
offset = offset % maxOffset;
|
|
128
|
+
else
|
|
129
|
+
/*!
|
|
130
|
+
* E.g., offset == 100, maxOffset == 98, Options::MaxFieldLimit() == 256 ==> offset = 97
|
|
131
|
+
*/
|
|
132
|
+
offset = maxOffset - 1;
|
|
133
|
+
}
|
|
112
134
|
|
|
113
135
|
return LocationSet(offset);
|
|
114
136
|
}
|
package/svf/lib/Util/Options.cpp
CHANGED
|
@@ -655,6 +655,12 @@ const Option<bool> Options::ModelArrays(
|
|
|
655
655
|
false
|
|
656
656
|
);
|
|
657
657
|
|
|
658
|
+
const Option<bool> Options::CyclicFldIdx(
|
|
659
|
+
"cyclic-field-index",
|
|
660
|
+
"Enable cyclic field index when generating field objects using modulus offset",
|
|
661
|
+
false
|
|
662
|
+
);
|
|
663
|
+
|
|
658
664
|
const Option<bool> Options::SymTabPrint(
|
|
659
665
|
"print-symbol-table",
|
|
660
666
|
"Print Symbol Table to command line",
|