svf-tools 1.0.813 → 1.0.815
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/AccessPath_8cpp_source.html +124 -121
- package/SVF-doxygen/html/AccessPath_8h_source.html +97 -88
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +184 -183
- package/SVF-doxygen/html/ContextDDA_8h_source.html +5 -5
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +191 -190
- package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +695 -688
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +883 -881
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +32 -32
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +120 -118
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFStatements_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFVariables_8h_source.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +7 -5
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +237 -162
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +176 -175
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +9 -9
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1NormalGepCGEdge.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +186 -185
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +667 -660
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +942 -938
- package/SVF-doxygen/html/functions_a.html +1 -1
- package/SVF-doxygen/html/functions_func.html +1 -1
- package/SVF-doxygen/html/functions_func_g.html +22 -17
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_g.html +20 -12
- package/SVF-doxygen/html/functions_i.html +1 -1
- package/SVF-doxygen/html/functions_o.html +7 -7
- package/SVF-doxygen/html/functions_p.html +11 -11
- package/SVF-doxygen/html/functions_r.html +2 -2
- package/SVF-doxygen/html/functions_s.html +17 -17
- package/SVF-doxygen/html/functions_v.html +7 -9
- package/SVF-doxygen/html/functions_vars_g.html +3 -0
- package/SVF-doxygen/html/functions_w.html +1 -1
- package/SVF-doxygen/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +222 -222
- package/SVF-doxygen/html/search/all_12.js +544 -544
- package/SVF-doxygen/html/search/all_13.js +191 -191
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_7.js +891 -888
- package/SVF-doxygen/html/search/all_8.js +197 -197
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +115 -115
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/search/functions_12.js +279 -279
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +87 -87
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/search/functions_7.js +854 -852
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -423
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +55 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -33
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +29 -29
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +10 -10
- package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
- package/package.json +1 -1
- package/svf/include/Graphs/ConsGEdge.h +1 -1
- package/svf/include/MemoryModel/AccessPath.h +14 -5
- package/svf/include/SVFIR/SVFStatements.h +2 -2
- package/svf/include/SVFIR/SVFVariables.h +1 -1
- package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -1
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -0
- package/svf/lib/DDA/ContextDDA.cpp +2 -1
- package/svf/lib/DDA/FlowDDA.cpp +1 -1
- package/svf/lib/MemoryModel/AccessPath.cpp +7 -5
- package/svf/lib/SVFIR/SVFIR.cpp +1 -1
- package/svf/lib/WPA/Andersen.cpp +1 -1
- package/svf/lib/WPA/FlowSensitive.cpp +1 -1
- package/svf-llvm/lib/SVFIRBuilder.cpp +6 -4
- package/svf-llvm/lib/SVFIRExtAPI.cpp +7 -5
|
@@ -307,7 +307,7 @@ $(function() {
|
|
|
307
307
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
|
|
308
308
|
</div><!-- fragment --></div><!-- contents -->
|
|
309
309
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
310
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
310
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00963">SVFIR2ItvExeState.cpp:963</a></div></div>
|
|
311
311
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
|
|
312
312
|
<div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00205">svf-ex.cpp:205</a></div></div>
|
|
313
313
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
@@ -318,14 +318,14 @@ $(function() {
|
|
|
318
318
|
<div class="ttc" id="aclassSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
|
|
319
319
|
<div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
|
|
320
320
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00170">SVFG.h:170</a></div></div>
|
|
321
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
321
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00901">SVFIR2ItvExeState.cpp:901</a></div></div>
|
|
322
322
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
|
|
323
323
|
<div class="ttc" id="aLLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
324
324
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
325
325
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
326
326
|
<div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
|
|
327
327
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList & getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
|
|
328
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
328
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00502">SVFIR2ItvExeState.cpp:502</a></div></div>
|
|
329
329
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00816">SVFStatements.h:816</a></div></div>
|
|
330
330
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
|
|
331
331
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
|
|
@@ -334,16 +334,16 @@ $(function() {
|
|
|
334
334
|
<div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
|
|
335
335
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00871">SVFStatements.h:871</a></div></div>
|
|
336
336
|
<div class="ttc" id="aclassSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
|
|
337
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
338
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
337
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00590">SVFIR2ItvExeState.cpp:590</a></div></div>
|
|
338
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00875">SVFIR2ItvExeState.cpp:875</a></div></div>
|
|
339
339
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
340
340
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
|
|
341
341
|
<div class="ttc" id="asvf-ex_8cpp_html_a8fa9e6583c354b1883a32b8abf98779f"><div class="ttname"><a href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a></div><div class="ttdeci">void traverseOnSVFStmt(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00077">svf-ex.cpp:77</a></div></div>
|
|
342
342
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
343
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
343
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00929">SVFIR2ItvExeState.cpp:929</a></div></div>
|
|
344
344
|
<div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
|
|
345
345
|
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
|
|
346
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
346
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00774">SVFIR2ItvExeState.cpp:774</a></div></div>
|
|
347
347
|
<div class="ttc" id="asvf-ex_8cpp_html_ad58149e5445ad22ce478339e103ab42b"><div class="ttname"><a href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a></div><div class="ttdeci">void traverseOnVFG(const SVFG *vfg, SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00168">svf-ex.cpp:168</a></div></div>
|
|
348
348
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
349
349
|
<div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
@@ -351,13 +351,13 @@ $(function() {
|
|
|
351
351
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
|
|
352
352
|
<div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
|
|
353
353
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
354
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
354
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00978">SVFIR2ItvExeState.cpp:978</a></div></div>
|
|
355
355
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
356
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
356
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00528">SVFIR2ItvExeState.cpp:528</a></div></div>
|
|
357
357
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
|
|
358
358
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
|
|
359
359
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
|
|
360
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
360
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00816">SVFIR2ItvExeState.cpp:816</a></div></div>
|
|
361
361
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00618">SVFType.h:618</a></div></div>
|
|
362
362
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
|
|
363
363
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
@@ -367,7 +367,7 @@ $(function() {
|
|
|
367
367
|
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
|
|
368
368
|
<div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
|
|
369
369
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
370
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
370
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00845">SVFIR2ItvExeState.cpp:845</a></div></div>
|
|
371
371
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00461">SVFStatements.h:461</a></div></div>
|
|
372
372
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
|
|
373
373
|
<div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.815",
|
|
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": {
|
|
@@ -65,12 +65,13 @@ public:
|
|
|
65
65
|
typedef std::vector<IdxOperandPair> IdxOperandPairs;
|
|
66
66
|
|
|
67
67
|
/// Constructor
|
|
68
|
-
AccessPath(APOffset o = 0) : fldIdx(o) {}
|
|
68
|
+
AccessPath(APOffset o = 0, const SVFType* srcTy = nullptr) : fldIdx(o), gepSourceElementType(srcTy) {}
|
|
69
69
|
|
|
70
70
|
/// Copy Constructor
|
|
71
71
|
AccessPath(const AccessPath& ap)
|
|
72
72
|
: fldIdx(ap.fldIdx),
|
|
73
|
-
idxOperandPairs(ap.getIdxOperandPairVec())
|
|
73
|
+
idxOperandPairs(ap.getIdxOperandPairVec()),
|
|
74
|
+
gepSourceElementType(ap.getGepSourceElementType())
|
|
74
75
|
{
|
|
75
76
|
}
|
|
76
77
|
|
|
@@ -84,18 +85,19 @@ public:
|
|
|
84
85
|
{
|
|
85
86
|
fldIdx = rhs.fldIdx;
|
|
86
87
|
idxOperandPairs = rhs.getIdxOperandPairVec();
|
|
88
|
+
gepSourceElementType = rhs.gepSourceElementType;
|
|
87
89
|
return *this;
|
|
88
90
|
}
|
|
89
91
|
inline bool operator==(const AccessPath& rhs) const
|
|
90
92
|
{
|
|
91
93
|
return this->fldIdx == rhs.fldIdx &&
|
|
92
|
-
this->idxOperandPairs == rhs.idxOperandPairs;
|
|
94
|
+
this->idxOperandPairs == rhs.idxOperandPairs && this->gepSourceElementType == rhs.gepSourceElementType;
|
|
93
95
|
}
|
|
94
96
|
//@}
|
|
95
97
|
|
|
96
98
|
/// Get methods
|
|
97
99
|
//@{
|
|
98
|
-
inline APOffset
|
|
100
|
+
inline APOffset getConstantStructFldIdx() const
|
|
99
101
|
{
|
|
100
102
|
return fldIdx;
|
|
101
103
|
}
|
|
@@ -107,6 +109,10 @@ public:
|
|
|
107
109
|
{
|
|
108
110
|
return idxOperandPairs;
|
|
109
111
|
}
|
|
112
|
+
inline const SVFType* getGepSourceElementType() const
|
|
113
|
+
{
|
|
114
|
+
return gepSourceElementType;
|
|
115
|
+
}
|
|
110
116
|
//@}
|
|
111
117
|
|
|
112
118
|
/**
|
|
@@ -167,6 +173,9 @@ private:
|
|
|
167
173
|
|
|
168
174
|
APOffset fldIdx; ///< Accumulated Constant Offsets
|
|
169
175
|
IdxOperandPairs idxOperandPairs; ///< a vector of actual offset in the form of <SVF Var, iterator type>
|
|
176
|
+
const SVFType* gepSourceElementType; /// source element type in gep instruction,
|
|
177
|
+
/// e.g., %f1 = getelementptr inbounds %struct.MyStruct, %struct.MyStruct* %arrayidx, i32 0, i32 0
|
|
178
|
+
/// the source element type is %struct.MyStruct
|
|
170
179
|
};
|
|
171
180
|
|
|
172
181
|
} // End namespace SVF
|
|
@@ -177,7 +186,7 @@ template <> struct std::hash<SVF::AccessPath>
|
|
|
177
186
|
{
|
|
178
187
|
SVF::Hash<std::pair<SVF::NodeID, SVF::NodeID>> h;
|
|
179
188
|
std::hash<SVF::AccessPath::IdxOperandPairs> v;
|
|
180
|
-
return h(std::make_pair(ap.
|
|
189
|
+
return h(std::make_pair(ap.getConstantStructFldIdx(),
|
|
181
190
|
v(ap.getIdxOperandPairVec())));
|
|
182
191
|
}
|
|
183
192
|
};
|
|
@@ -517,10 +517,10 @@ public:
|
|
|
517
517
|
return getAccessPath().computeConstantOffset();
|
|
518
518
|
}
|
|
519
519
|
/// Field index of the gep statement if it access the field of a struct
|
|
520
|
-
inline APOffset
|
|
520
|
+
inline APOffset getConstantStructFldIdx() const
|
|
521
521
|
{
|
|
522
522
|
assert(isVariantFieldGep()==false && "Can't retrieve the AccessPath if using a variable field index (pointer arithmetic) for struct field access ");
|
|
523
|
-
return getAccessPath().
|
|
523
|
+
return getAccessPath().getConstantStructFldIdx();
|
|
524
524
|
}
|
|
525
525
|
/// Gep statement with a variant field index (pointer arithmetic) for struct field access
|
|
526
526
|
inline bool isVariantFieldGep() const
|
|
@@ -609,7 +609,8 @@ std::pair<s32_t, s32_t> SVFIR2ConsExeState::getGepOffset(const SVF::GepStmt *gep
|
|
|
609
609
|
{
|
|
610
610
|
/// for instant constant index, e.g. gep arr, 1
|
|
611
611
|
if (gep->getOffsetVarAndGepTypePairVec().empty())
|
|
612
|
-
return std::make_pair(gep->
|
|
612
|
+
return std::make_pair(gep->getConstantStructFldIdx(),
|
|
613
|
+
gep->getConstantStructFldIdx());
|
|
613
614
|
|
|
614
615
|
s32_t totalOffset = 0;
|
|
615
616
|
/// default value of MaxFieldLimit is 512
|
|
@@ -266,6 +266,8 @@ SVFIR2ItvExeState::Addrs SVFIR2ItvExeState::getGepObjAddress(u32_t pointer, APOf
|
|
|
266
266
|
*/
|
|
267
267
|
IntervalValue SVFIR2ItvExeState::getByteOffset(const GepStmt *gep)
|
|
268
268
|
{
|
|
269
|
+
if (gep->isConstantOffset())
|
|
270
|
+
return IntervalValue((s64_t)gep->accumulateConstantByteOffset());
|
|
269
271
|
IntervalValue res(0); // Initialize the result interval 'res' to 0.
|
|
270
272
|
// Loop through the offsetVarAndGepTypePairVec in reverse order.
|
|
271
273
|
for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
|
|
@@ -337,6 +339,8 @@ IntervalValue SVFIR2ItvExeState::getByteOffset(const GepStmt *gep)
|
|
|
337
339
|
*/
|
|
338
340
|
IntervalValue SVFIR2ItvExeState::getItvOfFlattenedElemIndex(const GepStmt *gep)
|
|
339
341
|
{
|
|
342
|
+
if (gep->isConstantOffset())
|
|
343
|
+
return IntervalValue((s64_t)gep->accumulateConstantOffset());
|
|
340
344
|
IntervalValue res(0);
|
|
341
345
|
for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
|
|
342
346
|
{
|
|
@@ -171,7 +171,8 @@ CxtPtSet ContextDDA::processGepPts(const GepSVFGNode* gep, const CxtPtSet& srcPt
|
|
|
171
171
|
}
|
|
172
172
|
else
|
|
173
173
|
{
|
|
174
|
-
CxtVar var(ptd.get_cond(),getGepObjVar(ptd.get_id(),
|
|
174
|
+
CxtVar var(ptd.get_cond(),getGepObjVar(ptd.get_id(),
|
|
175
|
+
gepStmt->getAccessPath().getConstantStructFldIdx()));
|
|
175
176
|
tmpDstPts.set(var);
|
|
176
177
|
}
|
|
177
178
|
}
|
package/svf/lib/DDA/FlowDDA.cpp
CHANGED
|
@@ -156,7 +156,7 @@ PointsTo FlowDDA::processGepPts(const GepSVFGNode* gep, const PointsTo& srcPts)
|
|
|
156
156
|
}
|
|
157
157
|
else
|
|
158
158
|
{
|
|
159
|
-
NodeID fieldSrcPtdNode = getGepObjVar(ptd,
|
|
159
|
+
NodeID fieldSrcPtdNode = getGepObjVar(ptd, gepStmt->getAccessPath().getConstantStructFldIdx());
|
|
160
160
|
tmpDstPts.set(fieldSrcPtdNode);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
@@ -209,8 +209,9 @@ APOffset AccessPath::computeConstantOffset() const
|
|
|
209
209
|
|
|
210
210
|
assert(isConstantOffset() && "not a constant offset");
|
|
211
211
|
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
// source element type is struct
|
|
213
|
+
if(gepSourceElementType && gepSourceElementType->isStructTy())
|
|
214
|
+
return getConstantStructFldIdx();
|
|
214
215
|
|
|
215
216
|
APOffset totalConstOffset = 0;
|
|
216
217
|
for(int i = idxOperandPairs.size() - 1; i >= 0; i--)
|
|
@@ -249,14 +250,15 @@ APOffset AccessPath::computeConstantOffset() const
|
|
|
249
250
|
NodeBS AccessPath::computeAllLocations() const
|
|
250
251
|
{
|
|
251
252
|
NodeBS result;
|
|
252
|
-
result.set(
|
|
253
|
+
result.set(getConstantStructFldIdx());
|
|
253
254
|
return result;
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
AccessPath AccessPath::operator+(const AccessPath& rhs) const
|
|
257
258
|
{
|
|
259
|
+
assert(gepSourceElementType == rhs.getGepSourceElementType() && "source element type not match");
|
|
258
260
|
AccessPath ap(rhs);
|
|
259
|
-
ap.fldIdx +=
|
|
261
|
+
ap.fldIdx += getConstantStructFldIdx();
|
|
260
262
|
for (auto &p : ap.getIdxOperandPairVec())
|
|
261
263
|
ap.addOffsetVarAndGepTypePair(p.first, p.second);
|
|
262
264
|
|
|
@@ -314,7 +316,7 @@ std::string AccessPath::dump() const
|
|
|
314
316
|
std::string str;
|
|
315
317
|
std::stringstream rawstr(str);
|
|
316
318
|
|
|
317
|
-
rawstr << "AccessPath\tField_Index: " <<
|
|
319
|
+
rawstr << "AccessPath\tField_Index: " << getConstantStructFldIdx();
|
|
318
320
|
rawstr << ",\tNum-Stride: {";
|
|
319
321
|
const IdxOperandPairs& vec = getIdxOperandPairVec();
|
|
320
322
|
IdxOperandPairs::const_iterator it = vec.begin();
|
package/svf/lib/SVFIR/SVFIR.cpp
CHANGED
|
@@ -633,7 +633,7 @@ void SVFIR::print()
|
|
|
633
633
|
outs() << (*iter)->getSrcID() << " -- VariantGep --> "
|
|
634
634
|
<< (*iter)->getDstID() << "\n";
|
|
635
635
|
else
|
|
636
|
-
outs() << gep->getRHSVarID() << " -- Gep (" << gep->
|
|
636
|
+
outs() << gep->getRHSVarID() << " -- Gep (" << gep->getConstantStructFldIdx()
|
|
637
637
|
<< ") --> " << gep->getLHSVarID() << "\n";
|
|
638
638
|
}
|
|
639
639
|
|
package/svf/lib/WPA/Andersen.cpp
CHANGED
|
@@ -457,7 +457,7 @@ bool Andersen::processGepPts(const PointsTo& pts, const GepCGEdge* edge)
|
|
|
457
457
|
continue;
|
|
458
458
|
}
|
|
459
459
|
|
|
460
|
-
NodeID fieldSrcPtdNode = consCG->getGepObjVar(o, normalGepEdge->getAccessPath().
|
|
460
|
+
NodeID fieldSrcPtdNode = consCG->getGepObjVar(o, normalGepEdge->getAccessPath().getConstantStructFldIdx());
|
|
461
461
|
tmpDstPts.set(fieldSrcPtdNode);
|
|
462
462
|
}
|
|
463
463
|
}
|
|
@@ -529,7 +529,7 @@ bool FlowSensitive::processGep(const GepSVFGNode* edge)
|
|
|
529
529
|
continue;
|
|
530
530
|
}
|
|
531
531
|
|
|
532
|
-
NodeID fieldSrcPtdNode = getGepObjVar(o, gepStmt->getAccessPath().
|
|
532
|
+
NodeID fieldSrcPtdNode = getGepObjVar(o, gepStmt->getAccessPath().getConstantStructFldIdx());
|
|
533
533
|
tmpDstPts.set(fieldSrcPtdNode);
|
|
534
534
|
}
|
|
535
535
|
}
|
|
@@ -303,7 +303,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
|
|
|
303
303
|
continue;
|
|
304
304
|
APOffset idx = op->getSExtValue();
|
|
305
305
|
u32_t offset = pag->getSymbolInfo()->getFlattenedElemIdx(LLVMModuleSet::getLLVMModuleSet()->getSVFType(arrTy), idx);
|
|
306
|
-
ap.setFldIdx(ap.
|
|
306
|
+
ap.setFldIdx(ap.getConstantStructFldIdx() + offset);
|
|
307
307
|
}
|
|
308
308
|
else if (const StructType *ST = SVFUtil::dyn_cast<StructType>(gepTy))
|
|
309
309
|
{
|
|
@@ -311,7 +311,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
|
|
|
311
311
|
//The actual index
|
|
312
312
|
APOffset idx = op->getSExtValue();
|
|
313
313
|
u32_t offset = pag->getSymbolInfo()->getFlattenedElemIdx(LLVMModuleSet::getLLVMModuleSet()->getSVFType(ST), idx);
|
|
314
|
-
ap.setFldIdx(ap.
|
|
314
|
+
ap.setFldIdx(ap.getConstantStructFldIdx() + offset);
|
|
315
315
|
}
|
|
316
316
|
else if (gepTy->isSingleValueType())
|
|
317
317
|
{
|
|
@@ -345,7 +345,9 @@ void SVFIRBuilder::processCE(const Value* val)
|
|
|
345
345
|
const Constant* opnd = gepce->getOperand(0);
|
|
346
346
|
// handle recursive constant express case (gep (bitcast (gep X 1)) 1)
|
|
347
347
|
processCE(opnd);
|
|
348
|
-
|
|
348
|
+
auto &GEPOp = llvm::cast<llvm::GEPOperator>(*gepce);
|
|
349
|
+
Type *pType = GEPOp.getSourceElementType();
|
|
350
|
+
AccessPath ap(0, LLVMModuleSet::getLLVMModuleSet()->getSVFType(pType));
|
|
349
351
|
bool constGep = computeGepOffset(gepce, ap);
|
|
350
352
|
// must invoke pag methods here, otherwise it will be a dead recursion cycle
|
|
351
353
|
const SVFValue* cval = getCurrentValue();
|
|
@@ -710,7 +712,7 @@ void SVFIRBuilder::visitGetElementPtrInst(GetElementPtrInst &inst)
|
|
|
710
712
|
|
|
711
713
|
NodeID src = getValueNode(inst.getPointerOperand());
|
|
712
714
|
|
|
713
|
-
AccessPath ap;
|
|
715
|
+
AccessPath ap(0, LLVMModuleSet::getLLVMModuleSet()->getSVFType(inst.getSourceElementType()));
|
|
714
716
|
bool constGep = computeGepOffset(&inst, ap);
|
|
715
717
|
addGepEdge(src, dst, ap, constGep);
|
|
716
718
|
}
|
|
@@ -112,9 +112,9 @@ void SVFIRBuilder::addComplexConsForExt(Value *D, Value *S, const Value* szValue
|
|
|
112
112
|
{
|
|
113
113
|
LLVMModuleSet* llvmmodule = LLVMModuleSet::getLLVMModuleSet();
|
|
114
114
|
const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype),
|
|
115
|
-
fields[index].
|
|
115
|
+
fields[index].getConstantStructFldIdx());
|
|
116
116
|
const SVFType* sElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(stype),
|
|
117
|
-
fields[index].
|
|
117
|
+
fields[index].getConstantStructFldIdx());
|
|
118
118
|
NodeID dField = getGepValVar(D,fields[index],dElementType);
|
|
119
119
|
NodeID sField = getGepValVar(S,fields[index],sElementType);
|
|
120
120
|
NodeID dummy = pag->addDummyValNode();
|
|
@@ -180,7 +180,8 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
|
|
|
180
180
|
for (u32_t index = 0; index < sz; index++)
|
|
181
181
|
{
|
|
182
182
|
LLVMModuleSet* llvmmodule = LLVMModuleSet::getLLVMModuleSet();
|
|
183
|
-
const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype),
|
|
183
|
+
const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype),
|
|
184
|
+
dstFields[index].getConstantStructFldIdx());
|
|
184
185
|
NodeID dField = getGepValVar(cs->getArgOperand(0), dstFields[index], dElementType);
|
|
185
186
|
addStoreEdge(getValueNode(cs->getArgOperand(1)),dField);
|
|
186
187
|
}
|
|
@@ -233,7 +234,8 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
|
|
|
233
234
|
// We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.
|
|
234
235
|
// Now we calculate the offset from base to vArg3
|
|
235
236
|
NodeID vnArg3 = pag->getValueNode(svfCall->getArgOperand(3));
|
|
236
|
-
APOffset offset =
|
|
237
|
+
APOffset offset =
|
|
238
|
+
getAccessPathFromBaseNode(vnArg3).getConstantStructFldIdx();
|
|
237
239
|
|
|
238
240
|
// We get all flattened fields of base
|
|
239
241
|
vector<AccessPath> fields = pag->getTypeLocSetsMap(vnArg3).second;
|
|
@@ -245,7 +247,7 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
|
|
|
245
247
|
if((u32_t)i >= fields.size())
|
|
246
248
|
break;
|
|
247
249
|
const SVFType* elementType = pag->getSymbolInfo()->getFlatternedElemType(pag->getTypeLocSetsMap(vnArg3).first,
|
|
248
|
-
fields[i].
|
|
250
|
+
fields[i].getConstantStructFldIdx());
|
|
249
251
|
NodeID vnD = getGepValVar(cs->getArgOperand(3), fields[i], elementType);
|
|
250
252
|
NodeID vnS = pag->getValueNode(svfCall->getArgOperand(1));
|
|
251
253
|
if(vnD && vnS)
|