svf-tools 1.0.838 → 1.0.839
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/CFLSVFGBuilder_8cpp.html +86 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +195 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h.html +98 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +148 -0
- package/SVF-doxygen/html/CFLVF_8h.html +1 -1
- package/SVF-doxygen/html/CFLVF_8h_source.html +5 -5
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +170 -136
- package/SVF-doxygen/html/ProgSlice_8h_source.html +314 -298
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8cpp_source.html +29 -29
- package/SVF-doxygen/html/SVFG_8h_source.html +446 -444
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +246 -235
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp.html +1 -0
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +271 -265
- package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +75 -62
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +257 -256
- package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +18 -18
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/annotated.html +377 -376
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder-members.html +121 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +473 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLVF.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1ProgSlice-members.html +25 -22
- package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +493 -366
- package/SVF-doxygen/html/classSVF_1_1SVFG-members.html +182 -181
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +324 -298
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +2 -1
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator-members.html +22 -19
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +238 -159
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder-members.html +11 -9
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +347 -285
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +259 -257
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/classes.html +95 -94
- package/SVF-doxygen/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +2 -0
- package/SVF-doxygen/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -0
- package/SVF-doxygen/html/files.html +6 -4
- package/SVF-doxygen/html/functions_b.html +4 -3
- package/SVF-doxygen/html/functions_c.html +38 -29
- package/SVF-doxygen/html/functions_f.html +6 -6
- package/SVF-doxygen/html/functions_func_b.html +3 -2
- package/SVF-doxygen/html/functions_func_c.html +29 -23
- package/SVF-doxygen/html/functions_func_g.html +14 -10
- package/SVF-doxygen/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/functions_func_r.html +6 -5
- package/SVF-doxygen/html/functions_func_s.html +20 -17
- package/SVF-doxygen/html/functions_func_~.html +3 -0
- package/SVF-doxygen/html/functions_g.html +10 -6
- package/SVF-doxygen/html/functions_i.html +5 -5
- package/SVF-doxygen/html/functions_m.html +1 -1
- package/SVF-doxygen/html/functions_n.html +8 -7
- package/SVF-doxygen/html/functions_p.html +15 -15
- package/SVF-doxygen/html/functions_r.html +12 -6
- package/SVF-doxygen/html/functions_rela_c.html +3 -0
- package/SVF-doxygen/html/functions_s.html +22 -11
- package/SVF-doxygen/html/functions_t.html +7 -7
- package/SVF-doxygen/html/functions_type_n.html +2 -1
- package/SVF-doxygen/html/functions_type_s.html +6 -1
- package/SVF-doxygen/html/functions_type_w.html +1 -0
- package/SVF-doxygen/html/functions_v.html +4 -6
- package/SVF-doxygen/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/functions_vars_s.html +2 -1
- package/SVF-doxygen/html/functions_w.html +4 -3
- package/SVF-doxygen/html/functions_~.html +3 -0
- package/SVF-doxygen/html/hierarchy.html +2 -1
- package/SVF-doxygen/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +224 -223
- package/SVF-doxygen/html/search/all_12.js +553 -551
- package/SVF-doxygen/html/search/all_13.js +190 -190
- 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 +173 -172
- package/SVF-doxygen/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/search/all_3.js +466 -462
- package/SVF-doxygen/html/search/all_4.js +230 -230
- package/SVF-doxygen/html/search/all_5.js +119 -119
- package/SVF-doxygen/html/search/all_6.js +226 -226
- package/SVF-doxygen/html/search/all_7.js +1047 -1046
- package/SVF-doxygen/html/search/all_8.js +198 -198
- package/SVF-doxygen/html/search/all_9.js +608 -608
- 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 +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- 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 +81 -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 +34 -34
- 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 +20 -20
- 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 +57 -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 +13 -13
- package/SVF-doxygen/html/search/functions_1.js +362 -362
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +289 -288
- 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 +173 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +260 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +856 -855
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +424 -424
- 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 +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- 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 +3 -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 +2 -2
- 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 +62 -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 +56 -56
- 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 +98 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -44
- package/SVF-doxygen/html/search/variables_12.js +90 -90
- package/SVF-doxygen/html/search/variables_13.js +74 -74
- 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 +50 -50
- 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 -34
- 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 +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/CFL/CFLSVFGBuilder.h +58 -0
- package/svf/include/CFL/CFLVF.h +2 -2
- package/svf/include/Graphs/SVFG.h +1 -0
- package/svf/include/SABER/ProgSlice.h +11 -0
- package/svf/include/SABER/SaberCondAllocator.h +8 -0
- package/svf/include/SABER/SaberSVFGBuilder.h +12 -2
- package/svf/lib/CFL/CFLSVFGBuilder.cpp +100 -0
- package/svf/lib/SABER/ProgSlice.cpp +48 -1
- package/svf/lib/SABER/SaberSVFGBuilder.cpp +5 -0
- package/svf/lib/SABER/SrcSnkDDA.cpp +1 -0
|
@@ -114,136 +114,169 @@ $(function() {
|
|
|
114
114
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
|
|
115
115
|
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
|
|
116
116
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  setCurSVFGNode(node);</div>
|
|
117
|
-
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> 
|
|
118
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <
|
|
119
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
|
|
120
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
|
|
121
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
122
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="
|
|
123
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> 
|
|
124
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
125
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
126
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <
|
|
127
|
-
<div class="line"><a name="
|
|
128
|
-
<div class="line"><a name="
|
|
129
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
130
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
131
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
132
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
133
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
134
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
135
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
136
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
|
|
137
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
138
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
139
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
|
|
140
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
141
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
142
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
143
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
144
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
|
145
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
146
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> 
|
|
147
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
148
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
149
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
150
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
151
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
152
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
|
153
|
-
<div class="line"><a name="
|
|
154
|
-
<div class="line"><a name="
|
|
155
|
-
<div class="line"><a name="
|
|
156
|
-
<div class="line"><a name="
|
|
157
|
-
<div class="line"><a name="
|
|
158
|
-
<div class="line"><a name="
|
|
159
|
-
<div class="line"><a name="
|
|
160
|
-
<div class="line"><a name="
|
|
161
|
-
<div class="line"><a name="
|
|
162
|
-
<div class="line"><a name="
|
|
163
|
-
<div class="line"><a name="
|
|
164
|
-
<div class="line"><a name="
|
|
165
|
-
<div class="line"><a name="
|
|
166
|
-
<div class="line"><a name="
|
|
167
|
-
<div class="line"><a name="
|
|
168
|
-
<div class="line"><a name="
|
|
169
|
-
<div class="line"><a name="
|
|
170
|
-
<div class="line"><a name="
|
|
171
|
-
<div class="line"><a name="
|
|
172
|
-
<div class="line"><a name="
|
|
173
|
-
<div class="line"><a name="
|
|
174
|
-
<div class="line"><a name="
|
|
175
|
-
<div class="line"><a name="
|
|
176
|
-
<div class="line"><a name="
|
|
177
|
-
<div class="line"><a name="
|
|
178
|
-
<div class="line"><a name="
|
|
179
|
-
<div class="line"><a name="
|
|
180
|
-
<div class="line"><a name="
|
|
181
|
-
<div class="line"><a name="
|
|
182
|
-
<div class="line"><a name="
|
|
183
|
-
<div class="line"><a name="
|
|
184
|
-
<div class="line"><a name="
|
|
185
|
-
<div class="line"><a name="
|
|
186
|
-
<div class="line"><a name="
|
|
187
|
-
<div class="line"><a name="
|
|
188
|
-
<div class="line"><a name="
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="
|
|
200
|
-
<div class="line"><a name="
|
|
201
|
-
<div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="
|
|
203
|
-
<div class="line"><a name="
|
|
204
|
-
<div class="line"><a name="
|
|
205
|
-
<div class="line"><a name="
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="
|
|
214
|
-
<div class="line"><a name="
|
|
215
|
-
<div class="line"><a name="
|
|
216
|
-
<div class="line"><a name="
|
|
217
|
-
<div class="line"><a name="
|
|
218
|
-
<div class="line"><a name="
|
|
219
|
-
<div class="line"><a name="
|
|
220
|
-
<div class="line"><a name="
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="
|
|
223
|
-
<div class="line"><a name="
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="
|
|
232
|
-
<div class="line"><a name="
|
|
233
|
-
<div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  iter!=eiter; ++iter)</div>
|
|
237
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
238
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  rawstr << <span class="stringliteral">"\t\t --> ("</span> << *iter << <span class="stringliteral">") \n"</span>;</div>
|
|
239
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
117
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
|
118
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> invalidCond = computeInvalidCondFromRemovedSUVFEdge(node);</div>
|
|
119
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> cond = getVFCond(node);</div>
|
|
120
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = node-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = node-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it!=eit; ++it)</div>
|
|
121
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div>
|
|
122
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div>
|
|
123
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
|
|
124
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span>(inBackwardSlice(succ))</div>
|
|
125
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div>
|
|
126
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> vfCond;</div>
|
|
127
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* nodeBB = getSVFGNodeBB(node);</div>
|
|
128
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succBB = getSVFGNodeBB(succ);</div>
|
|
129
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  clearCFCond();</div>
|
|
130
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
|
131
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div>
|
|
132
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div>
|
|
133
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  vfCond = ComputeInterCallVFGGuard(nodeBB,succBB, getCallSite(edge)->getParent());</div>
|
|
134
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div>
|
|
135
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div>
|
|
136
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div>
|
|
137
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  vfCond = ComputeInterRetVFGGuard(nodeBB,succBB, getRetSite(edge)->getParent());</div>
|
|
138
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div>
|
|
139
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">else</span></div>
|
|
140
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  vfCond = ComputeIntraVFGGuard(nodeBB,succBB);</div>
|
|
141
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  vfCond = condAnd(vfCond, condNeg(invalidCond));</div>
|
|
142
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> succPathCond = condAnd(cond, vfCond);</div>
|
|
143
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span>(setVFCond(succ, condOr(getVFCond(succ), succPathCond) ))</div>
|
|
144
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ);</div>
|
|
145
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
|
|
146
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
|
147
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" node ("</span> << node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() <<</div>
|
|
148
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="stringliteral">") --> "</span> << <span class="stringliteral">"succ ("</span> << succ-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">") condition: "</span> << getVFCond(succ) << <span class="stringliteral">"\n"</span>);</div>
|
|
149
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
|
150
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  }</div>
|
|
151
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
|
152
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> isSatisfiableForAll();</div>
|
|
153
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div>
|
|
154
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
|
|
155
|
+
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#abe0cc350db350bd4e9a9973c9052fc41"> 108</a></span> <a class="code" href="classSVF_1_1Z3Expr.html">ProgSlice::Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#abe0cc350db350bd4e9a9973c9052fc41">ProgSlice::computeInvalidCondFromRemovedSUVFEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> * cur)</div>
|
|
156
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div>
|
|
157
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFBasicBlock*></a> validOutBBs; <span class="comment">// the BBs of valid successors</span></div>
|
|
158
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = cur-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = cur-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it!=eit; ++it)</div>
|
|
159
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div>
|
|
160
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div>
|
|
161
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
|
|
162
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span>(inBackwardSlice(succ))</div>
|
|
163
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div>
|
|
164
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  validOutBBs.insert(getSVFGNodeBB(succ));</div>
|
|
165
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
|
|
166
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div>
|
|
167
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> invalidCond = getFalseCond();</div>
|
|
168
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">auto</span> suVFEdgesIt = getRemovedSUVFEdges().find(cur);</div>
|
|
169
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (suVFEdgesIt != getRemovedSUVFEdges().end())</div>
|
|
170
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
|
|
171
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &succ: suVFEdgesIt->second)</div>
|
|
172
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div>
|
|
173
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (!validOutBBs.count(getSVFGNodeBB(succ)))</div>
|
|
174
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
|
175
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// removed vfg node does not reside in the BBs of valid successors</span></div>
|
|
176
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *nodeBB = getSVFGNodeBB(cur);</div>
|
|
177
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *succBB = getSVFGNodeBB(succ);</div>
|
|
178
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  clearCFCond();</div>
|
|
179
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  invalidCond = condOr(invalidCond, ComputeIntraVFGGuard(nodeBB, succBB));</div>
|
|
180
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div>
|
|
181
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div>
|
|
182
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div>
|
|
183
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> invalidCond;</div>
|
|
184
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div>
|
|
185
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
|
|
186
|
+
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed"> 142</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">ProgSlice::isSatisfiableForAll</a>()</div>
|
|
187
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
|
|
188
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </div>
|
|
189
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> guard = getFalseCond();</div>
|
|
190
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> it = sinksBegin(), eit = sinksEnd(); it!=eit; ++it)</div>
|
|
191
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div>
|
|
192
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  guard = condOr(guard,getVFCond(*it));</div>
|
|
193
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div>
|
|
194
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  setFinalCond(guard);</div>
|
|
195
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
|
|
196
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">return</span> pathAllocator->isAllPathReachable(guard);</div>
|
|
197
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div>
|
|
198
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
|
|
199
|
+
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4"> 158</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">ProgSlice::isSatisfiableForPairs</a>()</div>
|
|
200
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> {</div>
|
|
201
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
202
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> it = sinksBegin(), eit = sinksEnd(); it!=eit; ++it)</div>
|
|
203
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div>
|
|
204
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> sit = it, esit = sinksEnd(); sit!=esit; ++sit)</div>
|
|
205
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
|
206
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span>(*it == *sit)</div>
|
|
207
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">continue</span>;</div>
|
|
208
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> guard = condAnd(getVFCond(*sit),getVFCond(*it));</div>
|
|
209
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span>(!isEquivalentBranchCond(guard, getFalseCond()))</div>
|
|
210
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  {</div>
|
|
211
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  setFinalCond(guard);</div>
|
|
212
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
213
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div>
|
|
214
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div>
|
|
215
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
|
216
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
|
217
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
218
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div>
|
|
219
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
|
220
|
+
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d"> 179</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">ProgSlice::getCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)<span class="keyword"> const</span></div>
|
|
221
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword"></span>{</div>
|
|
222
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  assert(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>() && <span class="stringliteral">"not a call svfg edge?"</span>);</div>
|
|
223
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))</div>
|
|
224
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> getSVFG()->getCallSite(callEdge->getCallSiteId());</div>
|
|
225
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">else</span></div>
|
|
226
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">return</span> getSVFG()->getCallSite(SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId());</div>
|
|
227
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> }</div>
|
|
228
|
+
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886"> 187</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">ProgSlice::getRetSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)<span class="keyword"> const</span></div>
|
|
229
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword"></span>{</div>
|
|
230
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  assert(edge-><a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>() && <span class="stringliteral">"not a return svfg edge?"</span>);</div>
|
|
231
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))</div>
|
|
232
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> getSVFG()->getCallSite(callEdge->getCallSiteId());</div>
|
|
233
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">else</span></div>
|
|
234
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> getSVFG()->getCallSite(SVFUtil::cast<RetIndSVFGEdge>(edge)->getCallSiteId());</div>
|
|
235
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
|
|
240
236
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
241
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
242
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
243
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
244
|
-
<div class="line"><a name="l00199"></a><span class="lineno"
|
|
245
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> {</div>
|
|
246
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
237
|
+
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9"> 196</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">ProgSlice::evalFinalCond2Event</a>(<a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &eventStack)<span class="keyword"> const</span></div>
|
|
238
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword"></span>{</div>
|
|
239
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> elems = pathAllocator->exactCondElem(finalCond);</div>
|
|
240
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = elems.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = elems.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div>
|
|
241
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div>
|
|
242
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* tinst = pathAllocator->getCondInst(*it);</div>
|
|
243
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span>(pathAllocator->isNegCond(*it))</div>
|
|
244
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  eventStack.push_back(<a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>(</div>
|
|
245
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854">SVFBugEvent::Branch</a>|((((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)<span class="keyword">false</span>) << 4) & <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>), tinst));</div>
|
|
246
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span></div>
|
|
247
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  eventStack.push_back(<a class="code" href="classSVF_1_1SVFBugEvent.html">SVFBugEvent</a>(</div>
|
|
248
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854">SVFBugEvent::Branch</a>|((((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)<span class="keyword">true</span>) << 4) & <a class="code" href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a>), tinst));</div>
|
|
249
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
|
|
250
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> }</div>
|
|
251
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
|
|
252
|
+
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756"> 220</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">ProgSlice::evalFinalCond</a>()<span class="keyword"> const</span></div>
|
|
253
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword"></span>{</div>
|
|
254
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
255
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  std::stringstream rawstr(str);</div>
|
|
256
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<std::string></a> locations;</div>
|
|
257
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> elems = pathAllocator->exactCondElem(finalCond);</div>
|
|
258
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
|
|
259
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = elems.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = elems.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it!=eit; ++it)</div>
|
|
260
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
261
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* tinst = pathAllocator->getCondInst(*it);</div>
|
|
262
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span>(pathAllocator->isNegCond(*it))</div>
|
|
263
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  locations.insert(tinst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>()+<span class="stringliteral">"|False"</span>);</div>
|
|
264
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">else</span></div>
|
|
265
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  locations.insert(tinst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>()+<span class="stringliteral">"|True"</span>);</div>
|
|
266
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div>
|
|
267
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
268
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<std::string>::iterator</a> iter = locations.begin(), eiter = locations.end();</div>
|
|
269
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  iter!=eiter; ++iter)</div>
|
|
270
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
271
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  rawstr << <span class="stringliteral">"\t\t --> ("</span> << *iter << <span class="stringliteral">") \n"</span>;</div>
|
|
272
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div>
|
|
273
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
|
274
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
275
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> }</div>
|
|
276
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
|
277
|
+
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be"> 246</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">ProgSlice::destroy</a>()</div>
|
|
278
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> {</div>
|
|
279
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> }</div>
|
|
247
280
|
</div><!-- fragment --></div><!-- contents -->
|
|
248
281
|
<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>
|
|
249
282
|
<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>
|
|
@@ -251,7 +284,7 @@ $(function() {
|
|
|
251
284
|
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_aa7979418bed24fcecfc6fa04532cd586"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">SVF::ProgSlice::AllPathReachableSolve</a></div><div class="ttdeci">bool AllPathReachableSolve()</div><div class="ttdoc">Guarded reachability solve.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00043">ProgSlice.cpp:43</a></div></div>
|
|
252
285
|
<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>
|
|
253
286
|
<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>
|
|
254
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a45fb7711498bcba60e931c9c2a9ccec4"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">SVF::ProgSlice::isSatisfiableForPairs</a></div><div class="ttdeci">bool isSatisfiableForPairs()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
287
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a45fb7711498bcba60e931c9c2a9ccec4"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">SVF::ProgSlice::isSatisfiableForPairs</a></div><div class="ttdeci">bool isSatisfiableForPairs()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00158">ProgSlice.cpp:158</a></div></div>
|
|
255
288
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
|
|
256
289
|
<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>
|
|
257
290
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
|
|
@@ -259,9 +292,9 @@ $(function() {
|
|
|
259
292
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
260
293
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
|
|
261
294
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
262
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a8ae327bc7bf72f892d87730edfc67d0d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">SVF::ProgSlice::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(const SVFGEdge *edge) const</div><div class="ttdoc">Get callsite ID and get returnsiteID from SVFGEdge.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
295
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a8ae327bc7bf72f892d87730edfc67d0d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">SVF::ProgSlice::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(const SVFGEdge *edge) const</div><div class="ttdoc">Get callsite ID and get returnsiteID from SVFGEdge.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00179">ProgSlice.cpp:179</a></div></div>
|
|
263
296
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
|
|
264
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a215c9142830814ae838d15d9b7b40af9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">SVF::ProgSlice::evalFinalCond2Event</a></div><div class="ttdeci">void evalFinalCond2Event(GenericBug::EventStack &eventStack) const</div><div class="ttdoc">Add final condition to eventStack.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
297
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a215c9142830814ae838d15d9b7b40af9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">SVF::ProgSlice::evalFinalCond2Event</a></div><div class="ttdeci">void evalFinalCond2Event(GenericBug::EventStack &eventStack) const</div><div class="ttdoc">Add final condition to eventStack.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00196">ProgSlice.cpp:196</a></div></div>
|
|
265
298
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
|
|
266
299
|
<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>
|
|
267
300
|
<div class="ttc" id="aSVFType_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00596">SVFType.h:596</a></div></div>
|
|
@@ -270,26 +303,27 @@ $(function() {
|
|
|
270
303
|
<div class="ttc" id="aclassSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
|
|
271
304
|
<div class="ttc" id="aSVFBugReport_8h_html_a6c7cd1f1c2372251f51de3a8392faeec"><div class="ttname"><a href="SVFBugReport_8h.html#a6c7cd1f1c2372251f51de3a8392faeec">BRANCHFLAGMASK</a></div><div class="ttdeci">#define BRANCHFLAGMASK</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00040">SVFBugReport.h:40</a></div></div>
|
|
272
305
|
<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>
|
|
306
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_abe0cc350db350bd4e9a9973c9052fc41"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#abe0cc350db350bd4e9a9973c9052fc41">SVF::ProgSlice::computeInvalidCondFromRemovedSUVFEdge</a></div><div class="ttdeci">Condition computeInvalidCondFromRemovedSUVFEdge(const SVFGNode *cur)</div><div class="ttdoc">Compute invalid branch condition stemming from removed strong update value-flow edges.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00108">ProgSlice.cpp:108</a></div></div>
|
|
273
307
|
<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>
|
|
274
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a899332b210414ac991b57e83851ee5be"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">SVF::ProgSlice::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
308
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a899332b210414ac991b57e83851ee5be"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">SVF::ProgSlice::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00246">ProgSlice.cpp:246</a></div></div>
|
|
275
309
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a4352297ef44c4eff1efe2f348cce6fe9"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">SVF::VFGEdge::isCallVFGEdge</a></div><div class="ttdeci">bool isCallVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00084">VFGEdge.h:84</a></div></div>
|
|
276
310
|
<div class="ttc" id="aProgSlice_8h_html"><div class="ttname"><a href="ProgSlice_8h.html">ProgSlice.h</a></div></div>
|
|
277
311
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
|
|
278
312
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
279
313
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
280
314
|
<div class="ttc" id="aclassSVF_1_1SVFBugEvent_html_a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html#a4d0c0744525bc445a64176c3808377f3a070acf2c72c74cba55b5acea3db9c854">SVF::SVFBugEvent::Branch</a></div><div class="ttdeci">@ Branch</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00056">SVFBugReport.h:56</a></div></div>
|
|
281
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
315
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00220">ProgSlice.cpp:220</a></div></div>
|
|
282
316
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
283
317
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
284
318
|
<div class="ttc" id="aclassSVF_1_1SVFBugEvent_html"><div class="ttname"><a href="classSVF_1_1SVFBugEvent.html">SVF::SVFBugEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00051">SVFBugReport.h:51</a></div></div>
|
|
285
319
|
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00576">SVFType.h:576</a></div></div>
|
|
286
320
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00626">SVFValue.h:626</a></div></div>
|
|
287
321
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00280">SVFValue.h:280</a></div></div>
|
|
288
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a07ce77afbf69d5e2a47afaa39eaea886"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">SVF::ProgSlice::getRetSite</a></div><div class="ttdeci">const CallICFGNode * getRetSite(const SVFGEdge *edge) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
322
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a07ce77afbf69d5e2a47afaa39eaea886"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">SVF::ProgSlice::getRetSite</a></div><div class="ttdeci">const CallICFGNode * getRetSite(const SVFGEdge *edge) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00187">ProgSlice.cpp:187</a></div></div>
|
|
289
323
|
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_af41c438baa739406a35bcb2e9ba431dd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00054">ProgSlice.h:54</a></div></div>
|
|
290
324
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00101">GenericGraph.h:101</a></div></div>
|
|
291
325
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
292
|
-
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a62a9f2c107f27d6c04c30ef153ffb8ed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">SVF::ProgSlice::isSatisfiableForAll</a></div><div class="ttdeci">bool isSatisfiableForAll()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#
|
|
326
|
+
<div class="ttc" id="aclassSVF_1_1ProgSlice_html_a62a9f2c107f27d6c04c30ef153ffb8ed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">SVF::ProgSlice::isSatisfiableForAll</a></div><div class="ttdeci">bool isSatisfiableForAll()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00142">ProgSlice.cpp:142</a></div></div>
|
|
293
327
|
<!-- start footer part -->
|
|
294
328
|
<hr class="footer"/><address class="footer"><small>
|
|
295
329
|
Generated by  <a href="http://www.doxygen.org/index.html">
|