svf-tools 1.0.781 → 1.0.783
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/CDG_8h.html +2 -2
- package/SVF-doxygen/html/html/CDG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +152 -90
- package/SVF-doxygen/html/html/CFBasicBlockG_8h.html +3 -1
- package/SVF-doxygen/html/html/CFBasicBlockG_8h_source.html +601 -260
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +50 -50
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +180 -181
- package/SVF-doxygen/html/html/ExtAPI_8h.html +6 -6
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +13 -13
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/WTO_8h_source.html +6 -6
- package/SVF-doxygen/html/html/annotated.html +325 -333
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockEdge-members.html +19 -12
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockEdge.html +219 -30
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGBuilder-members.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGBuilder.html +147 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTONode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGraph-members.html +32 -28
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGraph.html +382 -184
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode-members.html +51 -41
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +1244 -159
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +65 -25
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +107 -107
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/html/classes.html +266 -276
- package/SVF-doxygen/html/html/dir_a10fe8a299b5f0831d187a9a2e1308ef.html +0 -2
- package/SVF-doxygen/html/html/dir_fc0329f850c815763e0c5b05933e8d55.html +0 -2
- package/SVF-doxygen/html/html/files.html +19 -21
- package/SVF-doxygen/html/html/functions.html +2 -33
- package/SVF-doxygen/html/html/functions_a.html +14 -16
- package/SVF-doxygen/html/html/functions_b.html +8 -9
- package/SVF-doxygen/html/html/functions_c.html +34 -31
- package/SVF-doxygen/html/html/functions_d.html +11 -13
- package/SVF-doxygen/html/html/functions_e.html +1 -1
- package/SVF-doxygen/html/html/functions_func.html +16 -18
- package/SVF-doxygen/html/html/functions_func_b.html +2 -3
- package/SVF-doxygen/html/html/functions_func_c.html +31 -31
- package/SVF-doxygen/html/html/functions_func_d.html +10 -12
- package/SVF-doxygen/html/html/functions_func_g.html +22 -59
- package/SVF-doxygen/html/html/functions_func_h.html +9 -12
- package/SVF-doxygen/html/html/functions_func_i.html +13 -26
- package/SVF-doxygen/html/html/functions_func_o.html +9 -9
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +15 -15
- package/SVF-doxygen/html/html/functions_func_s.html +20 -29
- package/SVF-doxygen/html/html/functions_func_t.html +0 -2
- package/SVF-doxygen/html/html/functions_func_v.html +2 -3
- package/SVF-doxygen/html/html/functions_func_~.html +0 -12
- package/SVF-doxygen/html/html/functions_g.html +23 -60
- package/SVF-doxygen/html/html/functions_h.html +9 -12
- package/SVF-doxygen/html/html/functions_i.html +16 -44
- package/SVF-doxygen/html/html/functions_n.html +6 -8
- package/SVF-doxygen/html/html/functions_o.html +23 -27
- package/SVF-doxygen/html/html/functions_p.html +8 -12
- package/SVF-doxygen/html/html/functions_r.html +17 -17
- package/SVF-doxygen/html/html/functions_s.html +16 -33
- package/SVF-doxygen/html/html/functions_t.html +5 -7
- package/SVF-doxygen/html/html/functions_type_c.html +6 -3
- package/SVF-doxygen/html/html/functions_type_e.html +1 -1
- package/SVF-doxygen/html/html/functions_type_i.html +3 -18
- package/SVF-doxygen/html/html/functions_type_n.html +0 -2
- package/SVF-doxygen/html/html/functions_type_s.html +0 -6
- package/SVF-doxygen/html/html/functions_v.html +4 -5
- package/SVF-doxygen/html/html/functions_vars.html +2 -33
- package/SVF-doxygen/html/html/functions_vars_i.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_o.html +2 -2
- package/SVF-doxygen/html/html/functions_w.html +8 -8
- package/SVF-doxygen/html/html/functions_~.html +0 -12
- package/SVF-doxygen/html/html/globals_d.html +2 -2
- package/SVF-doxygen/html/html/globals_defs.html +2 -2
- package/SVF-doxygen/html/html/hierarchy.html +458 -469
- package/SVF-doxygen/html/html/namespaceSVF.html +7 -78
- package/SVF-doxygen/html/html/namespacemembers_g.html +3 -12
- package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_g.html +0 -9
- package/SVF-doxygen/html/html/namespacemembers_type_n.html +1 -1
- package/SVF-doxygen/html/html/search/all_0.js +137 -147
- package/SVF-doxygen/html/html/search/all_1.js +484 -485
- package/SVF-doxygen/html/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/html/search/all_11.js +224 -224
- package/SVF-doxygen/html/html/search/all_12.js +541 -546
- package/SVF-doxygen/html/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/html/search/all_1a.js +172 -176
- package/SVF-doxygen/html/html/search/all_2.js +167 -167
- package/SVF-doxygen/html/html/search/all_3.js +640 -639
- package/SVF-doxygen/html/html/search/all_4.js +233 -234
- package/SVF-doxygen/html/html/search/all_5.js +121 -120
- package/SVF-doxygen/html/html/search/all_6.js +225 -225
- package/SVF-doxygen/html/html/search/all_7.js +1037 -1056
- package/SVF-doxygen/html/html/search/all_8.js +194 -195
- package/SVF-doxygen/html/html/search/all_9.js +607 -617
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/html/search/classes_3.js +37 -38
- package/SVF-doxygen/html/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +104 -110
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -60
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +53 -53
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -16
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/html/search/functions_1.js +356 -357
- package/SVF-doxygen/html/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/html/search/functions_12.js +276 -279
- package/SVF-doxygen/html/html/search/functions_13.js +58 -58
- package/SVF-doxygen/html/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/html/search/functions_18.js +172 -176
- package/SVF-doxygen/html/html/search/functions_2.js +86 -86
- package/SVF-doxygen/html/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/html/search/functions_7.js +848 -858
- package/SVF-doxygen/html/html/search/functions_8.js +146 -147
- package/SVF-doxygen/html/html/search/functions_9.js +425 -429
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/html/search/typedefs_10.js +61 -63
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +129 -128
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +55 -58
- package/SVF-doxygen/html/html/search/typedefs_7.js +42 -46
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +152 -162
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +37 -37
- package/SVF-doxygen/html/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/html/structSVF_1_1CFBasicBlockEdge_1_1equalCFBBEdge-members.html +84 -0
- package/SVF-doxygen/html/html/structSVF_1_1CFBasicBlockEdge_1_1equalCFBBEdge.html +144 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +40 -40
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
- package/package.json +1 -1
- package/svf/include/Graphs/CFBasicBlockG.h +342 -32
- package/svf/include/Util/ExtAPI.h +2 -2
- package/svf/lib/Graphs/CFBasicBlockG.cpp +97 -36
- package/svf/lib/Util/ExtAPI.cpp +14 -15
- package/svf/include/Graphs/ICFGWrapper.h +0 -728
- package/svf/lib/Graphs/ICFGWrapper.cpp +0 -97
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
//===- ICFGWrapper.cpp -- ICFG Wrapper-----------------------------------------//
|
|
2
|
-
//
|
|
3
|
-
// SVF: Static Value-Flow Analysis
|
|
4
|
-
//
|
|
5
|
-
// Copyright (C) <2013-2017> <Yulei Sui>
|
|
6
|
-
//
|
|
7
|
-
|
|
8
|
-
// This program is free software: you can redistribute it and/or modify
|
|
9
|
-
// it under the terms of the GNU Affero General Public License as published by
|
|
10
|
-
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
-
// (at your option) any later version.
|
|
12
|
-
|
|
13
|
-
// This program is distributed in the hope that it will be useful,
|
|
14
|
-
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
-
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
-
// GNU Affero General Public License for more details.
|
|
17
|
-
|
|
18
|
-
// You should have received a copy of the GNU Affero General Public License
|
|
19
|
-
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
-
//
|
|
21
|
-
//===----------------------------------------------------------------------===//
|
|
22
|
-
|
|
23
|
-
/*
|
|
24
|
-
* ICFGWrapper.cpp
|
|
25
|
-
*
|
|
26
|
-
* Created on: Sep 26, 2023
|
|
27
|
-
* Author: Xiao Cheng
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
#include "Graphs/ICFGWrapper.h"
|
|
31
|
-
|
|
32
|
-
using namespace SVF;
|
|
33
|
-
using namespace SVFUtil;
|
|
34
|
-
|
|
35
|
-
std::unique_ptr<ICFGWrapper> ICFGWrapper::_icfgWrapper = nullptr;
|
|
36
|
-
|
|
37
|
-
void ICFGWrapper::view()
|
|
38
|
-
{
|
|
39
|
-
SVF::ViewGraph(this, "ICFG Wrapper");
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
void ICFGWrapper::dump(const std::string& filename)
|
|
43
|
-
{
|
|
44
|
-
GraphPrinter::WriteGraphToFile(SVFUtil::outs(), filename, this);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
void ICFGWrapper::addICFGNodeWrapperFromICFGNode(const ICFGNode *src)
|
|
48
|
-
{
|
|
49
|
-
|
|
50
|
-
if (!hasICFGNodeWrapper(src->getId()))
|
|
51
|
-
addICFGNodeWrapper(new ICFGNodeWrapper(src));
|
|
52
|
-
ICFGNodeWrapper *curICFGNodeWrapper = getGNode(src->getId());
|
|
53
|
-
if (isa<FunEntryICFGNode>(src))
|
|
54
|
-
{
|
|
55
|
-
_funcToFunEntry.emplace(src->getFun(), curICFGNodeWrapper);
|
|
56
|
-
}
|
|
57
|
-
else if (isa<FunExitICFGNode>(src))
|
|
58
|
-
{
|
|
59
|
-
_funcToFunExit.emplace(src->getFun(), curICFGNodeWrapper);
|
|
60
|
-
}
|
|
61
|
-
else if (const CallICFGNode *callICFGNode = dyn_cast<CallICFGNode>(src))
|
|
62
|
-
{
|
|
63
|
-
if (!hasICFGNodeWrapper(callICFGNode->getRetICFGNode()->getId()))
|
|
64
|
-
addICFGNodeWrapper(new ICFGNodeWrapper(callICFGNode->getRetICFGNode()));
|
|
65
|
-
if (!curICFGNodeWrapper->getRetICFGNodeWrapper())
|
|
66
|
-
curICFGNodeWrapper->setRetICFGNodeWrapper(getGNode(callICFGNode->getRetICFGNode()->getId()));
|
|
67
|
-
}
|
|
68
|
-
else if (const RetICFGNode *retICFGNode = dyn_cast<RetICFGNode>(src))
|
|
69
|
-
{
|
|
70
|
-
if (!hasICFGNodeWrapper(retICFGNode->getCallICFGNode()->getId()))
|
|
71
|
-
addICFGNodeWrapper(new ICFGNodeWrapper(retICFGNode->getCallICFGNode()));
|
|
72
|
-
if (!curICFGNodeWrapper->getCallICFGNodeWrapper())
|
|
73
|
-
curICFGNodeWrapper->setCallICFGNodeWrapper(getGNode(retICFGNode->getCallICFGNode()->getId()));
|
|
74
|
-
}
|
|
75
|
-
for (const auto &e: src->getOutEdges())
|
|
76
|
-
{
|
|
77
|
-
if (!hasICFGNodeWrapper(e->getDstID()))
|
|
78
|
-
addICFGNodeWrapper(new ICFGNodeWrapper(e->getDstNode()));
|
|
79
|
-
ICFGNodeWrapper *dstNodeWrapper = getGNode(e->getDstID());
|
|
80
|
-
if (!hasICFGEdgeWrapper(curICFGNodeWrapper, dstNodeWrapper, e))
|
|
81
|
-
{
|
|
82
|
-
ICFGEdgeWrapper *pEdge = new ICFGEdgeWrapper(curICFGNodeWrapper, dstNodeWrapper, e);
|
|
83
|
-
addICFGEdgeWrapper(pEdge);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
void ICFGWrapperBuilder::build(ICFG *icfg)
|
|
90
|
-
{
|
|
91
|
-
ICFGWrapper::releaseICFGWrapper();
|
|
92
|
-
const std::unique_ptr<ICFGWrapper> &icfgWrapper = ICFGWrapper::getICFGWrapper(icfg);
|
|
93
|
-
for (const auto &i: *icfg)
|
|
94
|
-
{
|
|
95
|
-
icfgWrapper->addICFGNodeWrapperFromICFGNode(i.second);
|
|
96
|
-
}
|
|
97
|
-
}
|