svf-tools 1.0.611 → 1.0.613
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/SVFIR2ItvExeState_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +21 -19
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +28 -28
- package/SVF-doxygen/html/html/SVFIR2Relation_8cpp.html +80 -0
- package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +115 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +170 -88
- package/SVF-doxygen/html/html/dir_90956dbb2b4fce09f1890e5e77e2f49b.html +2 -0
- package/SVF-doxygen/html/html/files.html +1 -0
- package/SVF-doxygen/html/html/functions_func_t.html +9 -9
- package/SVF-doxygen/html/html/functions_t.html +9 -9
- package/SVF-doxygen/html/html/search/all_12.js +1 -0
- package/SVF-doxygen/html/html/search/all_13.js +9 -9
- package/SVF-doxygen/html/html/search/files_e.js +1 -0
- package/SVF-doxygen/html/html/search/functions_12.js +9 -9
- package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +7 -1
- package/lib/AbstractExecution/SVFIR2Relation.cpp +192 -0
- package/package.json +1 -1
|
@@ -79,6 +79,8 @@ Files</h2></td></tr>
|
|
|
79
79
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
80
80
|
<tr class="memitem:SVFIR2ItvExeState_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="SVFIR2ItvExeState_8cpp.html">SVFIR2ItvExeState.cpp</a> <a href="SVFIR2ItvExeState_8cpp_source.html">[code]</a></td></tr>
|
|
81
81
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
|
+
<tr class="memitem:SVFIR2Relation_8cpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="SVFIR2Relation_8cpp.html">SVFIR2Relation.cpp</a> <a href="SVFIR2Relation_8cpp_source.html">[code]</a></td></tr>
|
|
83
|
+
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
82
84
|
</table>
|
|
83
85
|
</div><!-- contents -->
|
|
84
86
|
<!-- start footer part -->
|
|
@@ -223,6 +223,7 @@ $(function() {
|
|
|
223
223
|
<tr id="row_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="RelationSolver_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="RelationSolver_8cpp.html" target="_self">RelationSolver.cpp</a></td><td class="desc"></td></tr>
|
|
224
224
|
<tr id="row_1_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="RelExeState_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="RelExeState_8cpp.html" target="_self">RelExeState.cpp</a></td><td class="desc"></td></tr>
|
|
225
225
|
<tr id="row_1_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="SVFIR2ItvExeState_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="SVFIR2ItvExeState_8cpp.html" target="_self">SVFIR2ItvExeState.cpp</a></td><td class="desc"></td></tr>
|
|
226
|
+
<tr id="row_1_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="SVFIR2Relation_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="SVFIR2Relation_8cpp.html" target="_self">SVFIR2Relation.cpp</a></td><td class="desc"></td></tr>
|
|
226
227
|
<tr id="row_1_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_1_1_" class="arrow" onclick="toggleFolder('1_1_')">►</span><span id="img_1_1_" class="iconfclosed" onclick="toggleFolder('1_1_')"> </span><a class="el" href="dir_98f9a352f241e0e917d4efaa4086f6e8.html" target="_self">CFL</a></td><td class="desc"></td></tr>
|
|
227
228
|
<tr id="row_1_1_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="CFGNormalizer_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="CFGNormalizer_8cpp.html" target="_self">CFGNormalizer.cpp</a></td><td class="desc"></td></tr>
|
|
228
229
|
<tr id="row_1_1_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><a href="CFLAlias_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="CFLAlias_8cpp.html" target="_self">CFLAlias.cpp</a></td><td class="desc"></td></tr>
|
|
@@ -255,25 +255,25 @@ $(function() {
|
|
|
255
255
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState</a>
|
|
256
256
|
</li>
|
|
257
257
|
<li>translateBinaryRel()
|
|
258
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
258
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aca887785abc037c61cca1eaad9613339">SVF::SVFIR2ItvExeState</a>
|
|
259
259
|
</li>
|
|
260
260
|
<li>translateCall()
|
|
261
261
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState</a>
|
|
262
262
|
</li>
|
|
263
263
|
<li>translateCallRel()
|
|
264
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
264
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2b03588d7d74af8818ddac6596a0f384">SVF::SVFIR2ItvExeState</a>
|
|
265
265
|
</li>
|
|
266
266
|
<li>translateCmp()
|
|
267
267
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState</a>
|
|
268
268
|
</li>
|
|
269
269
|
<li>translateCmpRel()
|
|
270
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
270
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a89e3c835e16459e8b90e4a67127fa5da">SVF::SVFIR2ItvExeState</a>
|
|
271
271
|
</li>
|
|
272
272
|
<li>translateCopy()
|
|
273
273
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState</a>
|
|
274
274
|
</li>
|
|
275
275
|
<li>translateCopyRel()
|
|
276
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
276
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a9a971203ef834c8e8591fc745ae5a17d">SVF::SVFIR2ItvExeState</a>
|
|
277
277
|
</li>
|
|
278
278
|
<li>translateGep()
|
|
279
279
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState</a>
|
|
@@ -282,31 +282,31 @@ $(function() {
|
|
|
282
282
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState</a>
|
|
283
283
|
</li>
|
|
284
284
|
<li>translateLoadRel()
|
|
285
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
285
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a3d9eeed61b6ef79b65c5c52c9ae82c04">SVF::SVFIR2ItvExeState</a>
|
|
286
286
|
</li>
|
|
287
287
|
<li>translatePhi()
|
|
288
288
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState</a>
|
|
289
289
|
</li>
|
|
290
290
|
<li>translatePhiRel()
|
|
291
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
291
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#af7b5bc422efbdfdf2f440209a695bded">SVF::SVFIR2ItvExeState</a>
|
|
292
292
|
</li>
|
|
293
293
|
<li>translateRet()
|
|
294
294
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState</a>
|
|
295
295
|
</li>
|
|
296
296
|
<li>translateRetRel()
|
|
297
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
297
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a8a20d2bafff92a5b8983a1566ed598d6">SVF::SVFIR2ItvExeState</a>
|
|
298
298
|
</li>
|
|
299
299
|
<li>translateSelect()
|
|
300
300
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState</a>
|
|
301
301
|
</li>
|
|
302
302
|
<li>translateSelectRel()
|
|
303
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
303
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a4a5e92df30da02bdb396fc6daad591fb">SVF::SVFIR2ItvExeState</a>
|
|
304
304
|
</li>
|
|
305
305
|
<li>translateStore()
|
|
306
306
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState</a>
|
|
307
307
|
</li>
|
|
308
308
|
<li>translateStoreRel()
|
|
309
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
309
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#ac57d2a609c1159b4f653965eadce58cc">SVF::SVFIR2ItvExeState</a>
|
|
310
310
|
</li>
|
|
311
311
|
<li>traverseDendrogram()
|
|
312
312
|
: <a class="el" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#abd44e3b07b0482bacf6b1a080fe650c6">SVF::NodeIDAllocator::Clusterer</a>
|
|
@@ -604,25 +604,25 @@ $(function() {
|
|
|
604
604
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState</a>
|
|
605
605
|
</li>
|
|
606
606
|
<li>translateBinaryRel()
|
|
607
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
607
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aca887785abc037c61cca1eaad9613339">SVF::SVFIR2ItvExeState</a>
|
|
608
608
|
</li>
|
|
609
609
|
<li>translateCall()
|
|
610
610
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState</a>
|
|
611
611
|
</li>
|
|
612
612
|
<li>translateCallRel()
|
|
613
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
613
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2b03588d7d74af8818ddac6596a0f384">SVF::SVFIR2ItvExeState</a>
|
|
614
614
|
</li>
|
|
615
615
|
<li>translateCmp()
|
|
616
616
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState</a>
|
|
617
617
|
</li>
|
|
618
618
|
<li>translateCmpRel()
|
|
619
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
619
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a89e3c835e16459e8b90e4a67127fa5da">SVF::SVFIR2ItvExeState</a>
|
|
620
620
|
</li>
|
|
621
621
|
<li>translateCopy()
|
|
622
622
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState</a>
|
|
623
623
|
</li>
|
|
624
624
|
<li>translateCopyRel()
|
|
625
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
625
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a9a971203ef834c8e8591fc745ae5a17d">SVF::SVFIR2ItvExeState</a>
|
|
626
626
|
</li>
|
|
627
627
|
<li>translateGep()
|
|
628
628
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState</a>
|
|
@@ -631,31 +631,31 @@ $(function() {
|
|
|
631
631
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState</a>
|
|
632
632
|
</li>
|
|
633
633
|
<li>translateLoadRel()
|
|
634
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
634
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a3d9eeed61b6ef79b65c5c52c9ae82c04">SVF::SVFIR2ItvExeState</a>
|
|
635
635
|
</li>
|
|
636
636
|
<li>translatePhi()
|
|
637
637
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState</a>
|
|
638
638
|
</li>
|
|
639
639
|
<li>translatePhiRel()
|
|
640
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
640
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#af7b5bc422efbdfdf2f440209a695bded">SVF::SVFIR2ItvExeState</a>
|
|
641
641
|
</li>
|
|
642
642
|
<li>translateRet()
|
|
643
643
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState</a>
|
|
644
644
|
</li>
|
|
645
645
|
<li>translateRetRel()
|
|
646
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
646
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a8a20d2bafff92a5b8983a1566ed598d6">SVF::SVFIR2ItvExeState</a>
|
|
647
647
|
</li>
|
|
648
648
|
<li>translateSelect()
|
|
649
649
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState</a>
|
|
650
650
|
</li>
|
|
651
651
|
<li>translateSelectRel()
|
|
652
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
652
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a4a5e92df30da02bdb396fc6daad591fb">SVF::SVFIR2ItvExeState</a>
|
|
653
653
|
</li>
|
|
654
654
|
<li>translateStore()
|
|
655
655
|
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState</a>
|
|
656
656
|
</li>
|
|
657
657
|
<li>translateStoreRel()
|
|
658
|
-
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
658
|
+
: <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#ac57d2a609c1159b4f653965eadce58cc">SVF::SVFIR2ItvExeState</a>
|
|
659
659
|
</li>
|
|
660
660
|
<li>traverseDendrogram()
|
|
661
661
|
: <a class="el" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#abd44e3b07b0482bacf6b1a080fe650c6">SVF::NodeIDAllocator::Clusterer</a>
|
|
@@ -397,6 +397,7 @@ var searchData=
|
|
|
397
397
|
['svfir2itvexestate',['SVFIR2ItvExeState',['../classSVF_1_1SVFIR2ItvExeState.html',1,'SVF::SVFIR2ItvExeState'],['../classSVF_1_1ExeState.html#af1ac478aba3f3858d5f6f4b15a9f73a6',1,'SVF::ExeState::SVFIR2ItvExeState()'],['../classSVF_1_1IntervalExeState.html#af1ac478aba3f3858d5f6f4b15a9f73a6',1,'SVF::IntervalExeState::SVFIR2ItvExeState()'],['../classSVF_1_1RelExeState.html#af1ac478aba3f3858d5f6f4b15a9f73a6',1,'SVF::RelExeState::SVFIR2ItvExeState()'],['../classSVF_1_1SVFIR2ItvExeState.html#a3c9285321cc0c4e1c46a31be9433192f',1,'SVF::SVFIR2ItvExeState::SVFIR2ItvExeState()']]],
|
|
398
398
|
['svfir2itvexestate_2ecpp',['SVFIR2ItvExeState.cpp',['../SVFIR2ItvExeState_8cpp.html',1,'']]],
|
|
399
399
|
['svfir2itvexestate_2eh',['SVFIR2ItvExeState.h',['../SVFIR2ItvExeState_8h.html',1,'']]],
|
|
400
|
+
['svfir2relation_2ecpp',['SVFIR2Relation.cpp',['../SVFIR2Relation_8cpp.html',1,'']]],
|
|
400
401
|
['svfirbuilder',['SVFIRBuilder',['../classSVF_1_1SVFIRBuilder.html',1,'SVF::SVFIRBuilder'],['../classSVF_1_1SVFIR.html#a46fadea4d08baefc8fbc1d8928da7f6b',1,'SVF::SVFIR::SVFIRBuilder()'],['../classSVF_1_1SVFIRBuilder.html#a1ecae204a349b69031f0edd7df7ca708',1,'SVF::SVFIRBuilder::SVFIRBuilder()']]],
|
|
401
402
|
['svfirbuilder_2ecpp',['SVFIRBuilder.cpp',['../SVFIRBuilder_8cpp.html',1,'']]],
|
|
402
403
|
['svfirbuilder_2eh',['SVFIRBuilder.h',['../SVFIRBuilder_8h.html',1,'']]],
|
|
@@ -143,24 +143,24 @@ var searchData=
|
|
|
143
143
|
['trailingzeroscounter',['TrailingZerosCounter',['../structSVF_1_1TrailingZerosCounter.html',1,'SVF']]],
|
|
144
144
|
['translateaddr',['translateAddr',['../classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9',1,'SVF::SVFIR2ItvExeState']]],
|
|
145
145
|
['translatebinary',['translateBinary',['../classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13',1,'SVF::SVFIR2ItvExeState']]],
|
|
146
|
-
['translatebinaryrel',['translateBinaryRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
146
|
+
['translatebinaryrel',['translateBinaryRel',['../classSVF_1_1SVFIR2ItvExeState.html#aca887785abc037c61cca1eaad9613339',1,'SVF::SVFIR2ItvExeState']]],
|
|
147
147
|
['translatecall',['translateCall',['../classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad',1,'SVF::SVFIR2ItvExeState']]],
|
|
148
|
-
['translatecallrel',['translateCallRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
148
|
+
['translatecallrel',['translateCallRel',['../classSVF_1_1SVFIR2ItvExeState.html#a2b03588d7d74af8818ddac6596a0f384',1,'SVF::SVFIR2ItvExeState']]],
|
|
149
149
|
['translatecmp',['translateCmp',['../classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24',1,'SVF::SVFIR2ItvExeState']]],
|
|
150
|
-
['translatecmprel',['translateCmpRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
150
|
+
['translatecmprel',['translateCmpRel',['../classSVF_1_1SVFIR2ItvExeState.html#a89e3c835e16459e8b90e4a67127fa5da',1,'SVF::SVFIR2ItvExeState']]],
|
|
151
151
|
['translatecopy',['translateCopy',['../classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999',1,'SVF::SVFIR2ItvExeState']]],
|
|
152
|
-
['translatecopyrel',['translateCopyRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
152
|
+
['translatecopyrel',['translateCopyRel',['../classSVF_1_1SVFIR2ItvExeState.html#a9a971203ef834c8e8591fc745ae5a17d',1,'SVF::SVFIR2ItvExeState']]],
|
|
153
153
|
['translategep',['translateGep',['../classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc',1,'SVF::SVFIR2ItvExeState']]],
|
|
154
154
|
['translateload',['translateLoad',['../classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68',1,'SVF::SVFIR2ItvExeState']]],
|
|
155
|
-
['translateloadrel',['translateLoadRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
155
|
+
['translateloadrel',['translateLoadRel',['../classSVF_1_1SVFIR2ItvExeState.html#a3d9eeed61b6ef79b65c5c52c9ae82c04',1,'SVF::SVFIR2ItvExeState']]],
|
|
156
156
|
['translatephi',['translatePhi',['../classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e',1,'SVF::SVFIR2ItvExeState']]],
|
|
157
|
-
['translatephirel',['translatePhiRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
157
|
+
['translatephirel',['translatePhiRel',['../classSVF_1_1SVFIR2ItvExeState.html#af7b5bc422efbdfdf2f440209a695bded',1,'SVF::SVFIR2ItvExeState']]],
|
|
158
158
|
['translateret',['translateRet',['../classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc',1,'SVF::SVFIR2ItvExeState']]],
|
|
159
|
-
['translateretrel',['translateRetRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
159
|
+
['translateretrel',['translateRetRel',['../classSVF_1_1SVFIR2ItvExeState.html#a8a20d2bafff92a5b8983a1566ed598d6',1,'SVF::SVFIR2ItvExeState']]],
|
|
160
160
|
['translateselect',['translateSelect',['../classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8',1,'SVF::SVFIR2ItvExeState']]],
|
|
161
|
-
['translateselectrel',['translateSelectRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
161
|
+
['translateselectrel',['translateSelectRel',['../classSVF_1_1SVFIR2ItvExeState.html#a4a5e92df30da02bdb396fc6daad591fb',1,'SVF::SVFIR2ItvExeState']]],
|
|
162
162
|
['translatestore',['translateStore',['../classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5',1,'SVF::SVFIR2ItvExeState']]],
|
|
163
|
-
['translatestorerel',['translateStoreRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
163
|
+
['translatestorerel',['translateStoreRel',['../classSVF_1_1SVFIR2ItvExeState.html#ac57d2a609c1159b4f653965eadce58cc',1,'SVF::SVFIR2ItvExeState']]],
|
|
164
164
|
['traversedendrogram',['traverseDendrogram',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#abd44e3b07b0482bacf6b1a080fe650c6',1,'SVF::NodeIDAllocator::Clusterer']]],
|
|
165
165
|
['traverseonicfg',['traverseOnICFG',['../svf-ex_8cpp.html#addc5529c5b161d0c61eba4944428455e',1,'svf-ex.cpp']]],
|
|
166
166
|
['traverseonvfg',['traverseOnVFG',['../svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b',1,'svf-ex.cpp']]],
|
|
@@ -30,6 +30,7 @@ var searchData=
|
|
|
30
30
|
['svfir_2eh',['SVFIR.h',['../SVFIR_8h.html',1,'']]],
|
|
31
31
|
['svfir2itvexestate_2ecpp',['SVFIR2ItvExeState.cpp',['../SVFIR2ItvExeState_8cpp.html',1,'']]],
|
|
32
32
|
['svfir2itvexestate_2eh',['SVFIR2ItvExeState.h',['../SVFIR2ItvExeState_8h.html',1,'']]],
|
|
33
|
+
['svfir2relation_2ecpp',['SVFIR2Relation.cpp',['../SVFIR2Relation_8cpp.html',1,'']]],
|
|
33
34
|
['svfirbuilder_2ecpp',['SVFIRBuilder.cpp',['../SVFIRBuilder_8cpp.html',1,'']]],
|
|
34
35
|
['svfirbuilder_2eh',['SVFIRBuilder.h',['../SVFIRBuilder_8h.html',1,'']]],
|
|
35
36
|
['svfloop_2eh',['SVFLoop.h',['../SVFLoop_8h.html',1,'']]],
|
|
@@ -30,24 +30,24 @@ var searchData=
|
|
|
30
30
|
['toz3expr',['toZ3Expr',['../classSVF_1_1RelExeState.html#a8045abc5e96d0c7b373587c796180d3e',1,'SVF::RelExeState']]],
|
|
31
31
|
['translateaddr',['translateAddr',['../classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9',1,'SVF::SVFIR2ItvExeState']]],
|
|
32
32
|
['translatebinary',['translateBinary',['../classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13',1,'SVF::SVFIR2ItvExeState']]],
|
|
33
|
-
['translatebinaryrel',['translateBinaryRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
33
|
+
['translatebinaryrel',['translateBinaryRel',['../classSVF_1_1SVFIR2ItvExeState.html#aca887785abc037c61cca1eaad9613339',1,'SVF::SVFIR2ItvExeState']]],
|
|
34
34
|
['translatecall',['translateCall',['../classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad',1,'SVF::SVFIR2ItvExeState']]],
|
|
35
|
-
['translatecallrel',['translateCallRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
35
|
+
['translatecallrel',['translateCallRel',['../classSVF_1_1SVFIR2ItvExeState.html#a2b03588d7d74af8818ddac6596a0f384',1,'SVF::SVFIR2ItvExeState']]],
|
|
36
36
|
['translatecmp',['translateCmp',['../classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24',1,'SVF::SVFIR2ItvExeState']]],
|
|
37
|
-
['translatecmprel',['translateCmpRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
37
|
+
['translatecmprel',['translateCmpRel',['../classSVF_1_1SVFIR2ItvExeState.html#a89e3c835e16459e8b90e4a67127fa5da',1,'SVF::SVFIR2ItvExeState']]],
|
|
38
38
|
['translatecopy',['translateCopy',['../classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999',1,'SVF::SVFIR2ItvExeState']]],
|
|
39
|
-
['translatecopyrel',['translateCopyRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
39
|
+
['translatecopyrel',['translateCopyRel',['../classSVF_1_1SVFIR2ItvExeState.html#a9a971203ef834c8e8591fc745ae5a17d',1,'SVF::SVFIR2ItvExeState']]],
|
|
40
40
|
['translategep',['translateGep',['../classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc',1,'SVF::SVFIR2ItvExeState']]],
|
|
41
41
|
['translateload',['translateLoad',['../classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68',1,'SVF::SVFIR2ItvExeState']]],
|
|
42
|
-
['translateloadrel',['translateLoadRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
42
|
+
['translateloadrel',['translateLoadRel',['../classSVF_1_1SVFIR2ItvExeState.html#a3d9eeed61b6ef79b65c5c52c9ae82c04',1,'SVF::SVFIR2ItvExeState']]],
|
|
43
43
|
['translatephi',['translatePhi',['../classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e',1,'SVF::SVFIR2ItvExeState']]],
|
|
44
|
-
['translatephirel',['translatePhiRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
44
|
+
['translatephirel',['translatePhiRel',['../classSVF_1_1SVFIR2ItvExeState.html#af7b5bc422efbdfdf2f440209a695bded',1,'SVF::SVFIR2ItvExeState']]],
|
|
45
45
|
['translateret',['translateRet',['../classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc',1,'SVF::SVFIR2ItvExeState']]],
|
|
46
|
-
['translateretrel',['translateRetRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
46
|
+
['translateretrel',['translateRetRel',['../classSVF_1_1SVFIR2ItvExeState.html#a8a20d2bafff92a5b8983a1566ed598d6',1,'SVF::SVFIR2ItvExeState']]],
|
|
47
47
|
['translateselect',['translateSelect',['../classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8',1,'SVF::SVFIR2ItvExeState']]],
|
|
48
|
-
['translateselectrel',['translateSelectRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
48
|
+
['translateselectrel',['translateSelectRel',['../classSVF_1_1SVFIR2ItvExeState.html#a4a5e92df30da02bdb396fc6daad591fb',1,'SVF::SVFIR2ItvExeState']]],
|
|
49
49
|
['translatestore',['translateStore',['../classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5',1,'SVF::SVFIR2ItvExeState']]],
|
|
50
|
-
['translatestorerel',['translateStoreRel',['../classSVF_1_1SVFIR2ItvExeState.html#
|
|
50
|
+
['translatestorerel',['translateStoreRel',['../classSVF_1_1SVFIR2ItvExeState.html#ac57d2a609c1159b4f653965eadce58cc',1,'SVF::SVFIR2ItvExeState']]],
|
|
51
51
|
['traversedendrogram',['traverseDendrogram',['../classSVF_1_1NodeIDAllocator_1_1Clusterer.html#abd44e3b07b0482bacf6b1a080fe650c6',1,'SVF::NodeIDAllocator::Clusterer']]],
|
|
52
52
|
['traverseonicfg',['traverseOnICFG',['../svf-ex_8cpp.html#addc5529c5b161d0c61eba4944428455e',1,'svf-ex.cpp']]],
|
|
53
53
|
['traverseonvfg',['traverseOnVFG',['../svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b',1,'svf-ex.cpp']]],
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
#include "AbstractExecution/SVFIR2ItvExeState.h"
|
|
31
|
+
#include "Util/Options.h"
|
|
31
32
|
|
|
32
33
|
using namespace SVF;
|
|
33
34
|
using namespace SVFUtil;
|
|
@@ -657,7 +658,12 @@ void SVFIR2ItvExeState::translateGep(const GepStmt *gep)
|
|
|
657
658
|
else
|
|
658
659
|
{
|
|
659
660
|
VAddrs gepAddrs;
|
|
660
|
-
|
|
661
|
+
s32_t ub = offsetPair.second;
|
|
662
|
+
if (offsetPair.second - offsetPair.first > (s32_t)Options::MaxFieldLimit - 1)
|
|
663
|
+
{
|
|
664
|
+
ub = offsetPair.first + (s32_t)Options::MaxFieldLimit - 1;
|
|
665
|
+
}
|
|
666
|
+
for (s32_t i = offsetPair.first; i <= ub; i++)
|
|
661
667
|
{
|
|
662
668
|
gepAddrs.join_with(getGepObjAddress(rhs, i));
|
|
663
669
|
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Xiao on 2022/8/18.
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
#include "AbstractExecution/SVFIR2ItvExeState.h"
|
|
6
|
+
|
|
7
|
+
using namespace SVF;
|
|
8
|
+
using namespace SVFUtil;
|
|
9
|
+
|
|
10
|
+
void SVFIR2ItvExeState::translateBinaryRel(const BinaryOPStmt *binary)
|
|
11
|
+
{
|
|
12
|
+
NodeID op0 = binary->getOpVarID(0);
|
|
13
|
+
NodeID op1 = binary->getOpVarID(1);
|
|
14
|
+
NodeID res = binary->getResID();
|
|
15
|
+
Z3Expr &rel_res = _relEs[res];
|
|
16
|
+
const Z3Expr &rel_value0 = _relEs.toZ3Expr(op0);
|
|
17
|
+
const Z3Expr &rel_value1 = _relEs.toZ3Expr(op1);
|
|
18
|
+
switch (binary->getOpcode())
|
|
19
|
+
{
|
|
20
|
+
case BinaryOperator::Add:
|
|
21
|
+
{
|
|
22
|
+
rel_res = rel_value0 + rel_value1;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case BinaryOperator::Sub:
|
|
26
|
+
{
|
|
27
|
+
rel_res = rel_value0 - rel_value1;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case BinaryOperator::Mul:
|
|
31
|
+
{
|
|
32
|
+
rel_res = rel_value0 * rel_value1;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case BinaryOperator::SDiv:
|
|
36
|
+
{
|
|
37
|
+
rel_res = rel_value0 / rel_value1;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
case BinaryOperator::SRem:
|
|
41
|
+
break;
|
|
42
|
+
case BinaryOperator::Xor:
|
|
43
|
+
break;
|
|
44
|
+
case BinaryOperator::And:
|
|
45
|
+
break;
|
|
46
|
+
case BinaryOperator::Or:
|
|
47
|
+
break;
|
|
48
|
+
case BinaryOperator::AShr:
|
|
49
|
+
break;
|
|
50
|
+
case BinaryOperator::Shl:
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
{
|
|
54
|
+
assert(false && "implement this part");
|
|
55
|
+
abort();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
void SVFIR2ItvExeState::translateCmpRel(const CmpStmt *cmp)
|
|
61
|
+
{
|
|
62
|
+
NodeID op0 = cmp->getOpVarID(0);
|
|
63
|
+
NodeID op1 = cmp->getOpVarID(1);
|
|
64
|
+
NodeID res_id = cmp->getResID();
|
|
65
|
+
u32_t predicate = cmp->getPredicate();
|
|
66
|
+
Z3Expr &rel_res = _relEs[res_id];
|
|
67
|
+
const Z3Expr &rel_value0 = _relEs.toZ3Expr(op0);
|
|
68
|
+
const Z3Expr &rel_value1 = _relEs.toZ3Expr(op1);
|
|
69
|
+
switch (predicate)
|
|
70
|
+
{
|
|
71
|
+
case CmpInst::ICMP_EQ:
|
|
72
|
+
{
|
|
73
|
+
rel_res = ite(rel_value0 == rel_value1, 1, 0);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case CmpInst::ICMP_NE:
|
|
77
|
+
{
|
|
78
|
+
rel_res = ite(rel_value0 != rel_value1, 1, 0);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case CmpInst::ICMP_UGT:
|
|
82
|
+
case CmpInst::ICMP_SGT:
|
|
83
|
+
{
|
|
84
|
+
rel_res = ite(rel_value0 > rel_value1, 1, 0);
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case CmpInst::ICMP_UGE:
|
|
88
|
+
case CmpInst::ICMP_SGE:
|
|
89
|
+
{
|
|
90
|
+
rel_res = ite(rel_value0 >= rel_value1, 1, 0);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case CmpInst::ICMP_ULT:
|
|
94
|
+
case CmpInst::ICMP_SLT:
|
|
95
|
+
{
|
|
96
|
+
rel_res = ite(rel_value0 < rel_value1, 1, 0);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case CmpInst::ICMP_ULE:
|
|
100
|
+
case CmpInst::ICMP_SLE:
|
|
101
|
+
{
|
|
102
|
+
rel_res = ite(rel_value0 <= rel_value1, 1, 0);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
default:
|
|
106
|
+
assert(false && "implement this part");
|
|
107
|
+
abort();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
void SVFIR2ItvExeState::translateLoadRel(const LoadStmt *load)
|
|
112
|
+
{
|
|
113
|
+
u32_t rhs = load->getRHSVarID();
|
|
114
|
+
u32_t lhs = load->getLHSVarID();
|
|
115
|
+
_relEs[lhs] = _relEs.load(Z3Expr((int) _es[rhs].lb().getNumeral()));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
void SVFIR2ItvExeState::translateStoreRel(const StoreStmt *store)
|
|
119
|
+
{
|
|
120
|
+
u32_t rhs = store->getRHSVarID();
|
|
121
|
+
u32_t lhs = store->getLHSVarID();
|
|
122
|
+
assert(_es[lhs].is_numeral() && "loc not numeral?");
|
|
123
|
+
_relEs.store(Z3Expr((int) _es[lhs].lb().getNumeral()), _relEs.toZ3Expr(rhs));
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
void SVFIR2ItvExeState::translateCopyRel(const CopyStmt *copy)
|
|
128
|
+
{
|
|
129
|
+
u32_t rhs = copy->getRHSVarID();
|
|
130
|
+
u32_t lhs = copy->getLHSVarID();
|
|
131
|
+
_relEs[lhs] = _relEs.toZ3Expr(rhs);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
void SVFIR2ItvExeState::translateSelectRel(const SelectStmt *select)
|
|
135
|
+
{
|
|
136
|
+
u32_t res = select->getResID();
|
|
137
|
+
u32_t tval = select->getTrueValue()->getId();
|
|
138
|
+
u32_t fval = select->getFalseValue()->getId();
|
|
139
|
+
u32_t cond = select->getCondition()->getId();
|
|
140
|
+
if (_es[cond].is_numeral())
|
|
141
|
+
{
|
|
142
|
+
_relEs[res] = _es[cond].is_zero() ? _relEs.toZ3Expr(fval) : _relEs.toZ3Expr(tval);
|
|
143
|
+
}
|
|
144
|
+
else
|
|
145
|
+
{
|
|
146
|
+
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
void SVFIR2ItvExeState::translatePhiRel(const PhiStmt *phi, const ICFGNode *srcNode,
|
|
151
|
+
const std::vector<const ICFGEdge *> &path)
|
|
152
|
+
{
|
|
153
|
+
u32_t res = phi->getResID();
|
|
154
|
+
std::unordered_map<const ICFGNode *, NodeID> candidate_ids;
|
|
155
|
+
for (u32_t i = 0; i < phi->getOpVarNum(); i++)
|
|
156
|
+
{
|
|
157
|
+
candidate_ids[phi->getOpICFGNode(i)] = phi->getOpVarID(i);
|
|
158
|
+
}
|
|
159
|
+
for (auto it = path.end() - 1; it != path.begin(); --it)
|
|
160
|
+
{
|
|
161
|
+
auto cur_node = (*it)->getDstNode();
|
|
162
|
+
if (candidate_ids.find(cur_node) != candidate_ids.end())
|
|
163
|
+
{
|
|
164
|
+
if (_es.getVarToVal().find(res) == _es.getVarToVal().end())
|
|
165
|
+
{
|
|
166
|
+
_relEs[res] = _relEs.toZ3Expr(candidate_ids[cur_node]);
|
|
167
|
+
}
|
|
168
|
+
else
|
|
169
|
+
{
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
assert(false && "predecessor ICFGNode of this PhiStmt not found?");
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
void SVFIR2ItvExeState::translateCallRel(const CallPE *callPE)
|
|
179
|
+
{
|
|
180
|
+
u32_t rhs = callPE->getRHSVarID();
|
|
181
|
+
u32_t lhs = callPE->getLHSVarID();
|
|
182
|
+
_relEs[lhs] = _relEs.toZ3Expr(rhs);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
void SVFIR2ItvExeState::translateRetRel(const RetPE *retPE)
|
|
186
|
+
{
|
|
187
|
+
u32_t lhs = retPE->getLHSVarID();
|
|
188
|
+
u32_t rhs = retPE->getRHSVarID();
|
|
189
|
+
_relEs[lhs] = _relEs.toZ3Expr(rhs);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.613",
|
|
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": {
|