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
|
@@ -127,215 +127,214 @@ $(function() {
|
|
|
127
127
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> }</div>
|
|
128
128
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
|
129
129
|
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// Set extapi.bc file path</span></div>
|
|
130
|
-
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#
|
|
130
|
+
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103"> 59</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">ExtAPI::setExtBcPath</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& path)</div>
|
|
131
131
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div>
|
|
132
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <
|
|
133
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
134
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
135
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
136
|
-
<div class="line"><a name="l00065"></a><span class="lineno"
|
|
137
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
138
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="
|
|
139
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
140
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
141
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
142
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
143
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
144
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
145
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
146
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">//
|
|
147
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="
|
|
148
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
149
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> 
|
|
150
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">
|
|
151
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
152
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
153
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
154
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
155
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
156
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> 
|
|
157
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
158
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
159
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
160
|
-
<div class="line"><a name="l00089"></a><span class="lineno"
|
|
161
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
162
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <
|
|
163
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
164
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
165
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
166
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
167
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
168
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
169
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
170
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
171
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="
|
|
172
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
173
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> 
|
|
174
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
175
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
176
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">//
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
178
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
185
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
|
|
132
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">struct </span>stat statbuf;</div>
|
|
133
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">if</span> (!path.empty() && !stat(path.c_str(), &statbuf))</div>
|
|
134
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  {</div>
|
|
135
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = path;</div>
|
|
136
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
139
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div>
|
|
140
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
|
141
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Get environment variables $SVF_DIR and "npm root" through popen() method</span></div>
|
|
142
|
+
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935"> 71</a></span> <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& command)</div>
|
|
143
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> {</div>
|
|
144
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
|
|
145
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">""</span>;</div>
|
|
146
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// Open pipe to file</span></div>
|
|
147
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  FILE* pipe = popen(command.c_str(), <span class="stringliteral">"r"</span>);</div>
|
|
148
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (!pipe)</div>
|
|
149
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div>
|
|
150
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> <span class="stringliteral">"popen failed!"</span>;</div>
|
|
151
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div>
|
|
152
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// read till end of process:</span></div>
|
|
153
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">while</span> (!feof(pipe))</div>
|
|
154
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
|
|
155
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// use buffer to read and add to result</span></div>
|
|
156
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
157
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
|
|
158
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
|
159
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  pclose(pipe);</div>
|
|
160
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// remove "\n"</span></div>
|
|
161
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  result.erase(remove(result.begin(), result.end(), <span class="charliteral">'\n'</span>), result.end());</div>
|
|
162
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> result;</div>
|
|
163
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div>
|
|
164
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
|
|
165
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Get extapi.bc file path in npm</span></div>
|
|
166
|
+
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84"> 95</a></span> <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& path)</div>
|
|
167
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div>
|
|
168
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <span class="stringliteral">""</span>;</div>
|
|
169
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">"SVF_DIR"</span>) == 0)</div>
|
|
170
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
|
|
171
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  bcFilePath = getenv(<span class="stringliteral">"SVF_DIR"</span>);</div>
|
|
172
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div>
|
|
173
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">"npm root"</span>) == 0)</div>
|
|
174
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div>
|
|
175
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
|
|
176
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
|
|
178
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor">#ifdef linux</span></div>
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Linux os</span></div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  bcFilePath.append(<span class="stringliteral">"/svf-lib/SVF-linux"</span>);</div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor">#else</span></div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// Mac os</span></div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  bcFilePath.append(<span class="stringliteral">"/svf-lib/SVF-osx"</span>);</div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor">#endif</span></div>
|
|
185
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
|
|
186
186
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
|
187
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
188
|
-
<div class="line"><a name="l00117"></a><span class="lineno"
|
|
189
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="
|
|
191
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
192
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
194
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
195
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="
|
|
198
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">//
|
|
199
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
201
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> 
|
|
206
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
|
207
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
208
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
209
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="
|
|
210
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> 
|
|
211
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
|
212
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> 
|
|
213
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <
|
|
214
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (
|
|
187
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (!bcFilePath.empty() && bcFilePath.back() != <span class="charliteral">'/'</span>)</div>
|
|
188
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  bcFilePath.push_back(<span class="charliteral">'/'</span>);</div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  bcFilePath.append(BUILD_TYPE).append(<a class="code" href="ExtAPI_8h.html#a3be52a096fe407bb55141117f1cf4c75">DEFAULT_EXTAPI_BC_PATH</a>);</div>
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> bcFilePath;</div>
|
|
191
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> }</div>
|
|
192
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Get extapi.bc path</span></div>
|
|
194
|
+
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c"> 123</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">ExtAPI::getExtBcPath</a>()</div>
|
|
195
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// Five default ways to get extapi.bc path</span></div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// 1. Set extapi.bc path through setExtBcPath() method</span></div>
|
|
198
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// 2. Set extapi.bc path through the "-extapi = PATH_TO_EXTAPIFILE" option</span></div>
|
|
199
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// 3. Default path: "SVF_IR_PATH/CMAKE_BUILD_TYPE-build/svf-llvm/extapi.bc"</span></div>
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// 4. From $SVF_DIR</span></div>
|
|
201
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// 5. From "npm root"(If SVF is installed via npm)</span></div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.empty())</div>
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// 2. Set extapi.bc path through the "-extapi = PATH_TO_EXTAPIFILE" option</span></div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">setExtBcPath</a>(<a class="code" href="classSVF_1_1Options.html#a2dffc9d885fa53340a1cdbc028d7f24a">Options::ExtAPIPath</a>()))</div>
|
|
207
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
|
|
208
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
|
209
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// 3. Default path: "SVF_IR_PATH/CMAKE_BUILD_TYPE-build/svf-llvm/extapi.bc"</span></div>
|
|
210
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">setExtBcPath</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(EXTAPI_DIR) + <span class="stringliteral">"/extapi.bc"</span>))</div>
|
|
211
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
|
|
212
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
|
213
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// 4. From $SVF_DIR</span></div>
|
|
214
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">setExtBcPath</a>(<a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">"SVF_DIR"</span>)))</div>
|
|
215
215
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
|
|
216
216
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
|
|
217
217
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// 5. From "npm root"(If SVF is installed via npm)</span></div>
|
|
218
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1ExtAPI.html#
|
|
219
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
220
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
221
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
|
222
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
223
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  << <span class="stringliteral">"
|
|
224
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  << <span class="stringliteral">"
|
|
225
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
226
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
227
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
228
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
|
229
|
-
<div class="line"><a name="l00158"></a><span class="lineno"
|
|
230
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
231
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> 
|
|
232
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
233
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> 
|
|
234
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
235
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
236
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
237
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
|
238
|
-
<div class="line"><a name="l00167"></a><span class="lineno"
|
|
239
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
240
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
241
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
242
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
243
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
244
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
245
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
246
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
247
|
-
<div class="line"><a name="l00176"></a><span class="lineno"
|
|
248
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
249
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
250
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
251
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
252
|
-
<div class="line"><a name="l00181"></a><span class="lineno"
|
|
253
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
254
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
255
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
256
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
257
|
-
<div class="line"><a name="l00186"></a><span class="lineno"
|
|
258
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
259
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
260
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
261
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
262
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="
|
|
263
|
-
<div class="line"><a name="l00192"></a><span class="lineno"
|
|
264
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
265
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
266
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
267
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
268
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <
|
|
269
|
-
<div class="line"><a name="l00198"></a><span class="lineno"
|
|
270
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
271
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <
|
|
272
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
273
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
|
|
274
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <
|
|
275
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
276
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
277
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
278
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
279
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
280
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
281
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
282
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
283
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
284
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="
|
|
285
|
-
<div class="line"><a name="l00214"></a><span class="lineno"
|
|
286
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
287
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
288
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
218
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">setExtBcPath</a>(<a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">"npm root"</span>)))</div>
|
|
219
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
|
|
220
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
|
|
221
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"No extapi.bc found at "</span> << <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> << <span class="stringliteral">" in getExtBcPath() !!!"</span> << <span class="stringliteral">"\n"</span></div>
|
|
222
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  << <span class="stringliteral">"You can specify extapi.bc path in two ways:"</span> << <span class="stringliteral">"\n"</span></div>
|
|
223
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  << <span class="stringliteral">"1. Set it via the command line using -extapi=/path_to_extapi;"</span> << <span class="stringliteral">"\n"</span></div>
|
|
224
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  << <span class="stringliteral">"2. Use the API setExtBcPath(). Please note that setExtBcPath() should be used before buildSVFModule().\n"</span>;</div>
|
|
225
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  abort();</div>
|
|
226
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div>
|
|
227
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
228
|
+
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef"> 157</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">ExtAPI::getExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
229
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div>
|
|
230
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
231
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>())</div>
|
|
232
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
233
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> annotation;</div>
|
|
234
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div>
|
|
235
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> }</div>
|
|
236
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
|
|
237
|
+
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd"> 166</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">ExtAPI::hasExtFuncAnnotation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& funcAnnotation)</div>
|
|
238
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> {</div>
|
|
239
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  assert(fun && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
240
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& annotation : fun-><a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>())</div>
|
|
241
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
|
|
242
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
243
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
244
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }</div>
|
|
245
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
|
246
|
+
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742"> 175</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">ExtAPI::is_memcpy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
247
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
|
|
248
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMCPY"</span>);</div>
|
|
249
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div>
|
|
250
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  </div>
|
|
251
|
+
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8"> 180</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">ExtAPI::is_memset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
252
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> {</div>
|
|
253
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"MEMSET"</span>);</div>
|
|
254
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div>
|
|
255
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
|
256
|
+
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d"> 185</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">ExtAPI::is_alloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
257
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> {</div>
|
|
258
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_RET"</span>);</div>
|
|
259
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div>
|
|
260
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  </div>
|
|
261
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// Does (F) allocate a new object and assign it to one of its arguments?</span></div>
|
|
262
|
+
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477"> 191</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">ExtAPI::is_arg_alloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
263
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> {</div>
|
|
264
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_ARG"</span>);</div>
|
|
265
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
|
|
266
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
267
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// Get the position of argument which holds the new object</span></div>
|
|
268
|
+
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a"> 197</a></span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">ExtAPI::get_alloc_arg_pos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
269
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div>
|
|
270
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocArg = <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">getExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"ALLOC_ARG"</span>);</div>
|
|
271
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  assert(!allocArg.empty() && <span class="stringliteral">"Not an alloc call via argument or incorrect extern function annotation!"</span>);</div>
|
|
272
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
273
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>;</div>
|
|
274
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">for</span> (<span class="keywordtype">char</span> c : allocArg)</div>
|
|
275
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
276
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a>(c))</div>
|
|
277
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.push_back(c);</div>
|
|
278
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
|
279
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  assert(!<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.empty() && <span class="stringliteral">"Incorrect naming convention for svf external functions(ALLOC_ARG + number)?"</span>);</div>
|
|
280
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> std::stoi(<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>);</div>
|
|
281
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div>
|
|
282
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
|
283
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">// Does (F) reallocate a new object?</span></div>
|
|
284
|
+
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4"> 213</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">ExtAPI::is_realloc</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
285
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div>
|
|
286
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"REALLOC_RET"</span>);</div>
|
|
287
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div>
|
|
288
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </div>
|
|
289
289
|
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
|
290
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
|
291
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">//
|
|
292
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="
|
|
293
|
-
<div class="line"><a name="l00222"></a><span class="lineno"
|
|
294
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
295
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
|
|
296
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
297
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
298
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
299
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
300
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
301
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
302
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> }</div>
|
|
290
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// Should (F) be considered "external" (either not defined in the program</span></div>
|
|
291
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// or a user-defined version of a known alloc or no-op)?</span></div>
|
|
292
|
+
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2"> 221</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">ExtAPI::is_ext</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
293
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div>
|
|
294
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> && <span class="stringliteral">"Null SVFFunction* pointer"</span>);</div>
|
|
295
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->isIntrinsic())</div>
|
|
296
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
297
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">"OVERWRITE"</span>) && <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().size() == 1)</div>
|
|
298
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
299
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">else</span></div>
|
|
300
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>->getAnnotations().empty();</div>
|
|
301
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }</div>
|
|
303
302
|
</div><!-- fragment --></div><!-- contents -->
|
|
303
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac0dc697b93f41b1e094a9be8baf4a103"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac0dc697b93f41b1e094a9be8baf4a103">SVF::ExtAPI::setExtBcPath</a></div><div class="ttdeci">static bool setExtBcPath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00059">ExtAPI.cpp:59</a></div></div>
|
|
304
304
|
<div class="ttc" id="aextapi_8c_html_a55c10fd7c7152a709388daa21827771c"><div class="ttname"><a href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a></div><div class="ttdeci">char * fgets(char *str, int n, void *stream)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00684">extapi.c:684</a></div></div>
|
|
305
305
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00050">ExtAPI.h:50</a></div></div>
|
|
306
|
-
<div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
306
|
+
<div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00071">ExtAPI.cpp:71</a></div></div>
|
|
307
307
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_abe3e0e2500532acfc01cee7e2ce1cd90"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">SVF::ExtAPI::destory</a></div><div class="ttdeci">static void destory()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00049">ExtAPI.cpp:49</a></div></div>
|
|
308
|
-
<div class="ttc" id="aExtAPI_8cpp_html_a7d2ff3727892c4ee0eff596174eb5b84"><div class="ttname"><a href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a></div><div class="ttdeci">static std::string getFilePath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
309
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
308
|
+
<div class="ttc" id="aExtAPI_8cpp_html_a7d2ff3727892c4ee0eff596174eb5b84"><div class="ttname"><a href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a></div><div class="ttdeci">static std::string getFilePath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00095">ExtAPI.cpp:95</a></div></div>
|
|
309
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00221">ExtAPI.cpp:221</a></div></div>
|
|
310
310
|
<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>
|
|
311
311
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab793be4b6f8f0a025599e76f5df2a4eb"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">SVF::ExtAPI::ExtAPI</a></div><div class="ttdeci">ExtAPI()=default</div></div>
|
|
312
312
|
<div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
|
|
313
313
|
<div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00754">extapi.c:754</a></div></div>
|
|
314
314
|
<div class="ttc" id="acJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
|
|
315
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
315
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00197">ExtAPI.cpp:197</a></div></div>
|
|
316
316
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
317
317
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
318
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a9f6e5cd617ab57ef9da0bab6c3c9cdc8"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">SVF::ExtAPI::is_memset</a></div><div class="ttdeci">bool is_memset(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
319
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
318
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a9f6e5cd617ab57ef9da0bab6c3c9cdc8"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a9f6e5cd617ab57ef9da0bab6c3c9cdc8">SVF::ExtAPI::is_memset</a></div><div class="ttdeci">bool is_memset(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00180">ExtAPI.cpp:180</a></div></div>
|
|
319
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00185">ExtAPI.cpp:185</a></div></div>
|
|
320
320
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a067bd6dbaf74a028d546fa56b095791b"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">SVF::SVFFunction::getAnnotations</a></div><div class="ttdeci">const std::vector< std::string > & getAnnotations() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00461">SVFValue.h:461</a></div></div>
|
|
321
321
|
<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>
|
|
322
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
323
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_af458eeda610804c8cb5bbe5afd956a65"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#af458eeda610804c8cb5bbe5afd956a65">SVF::ExtAPI::setExtBcPath</a></div><div class="ttdeci">static void setExtBcPath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00059">ExtAPI.cpp:59</a></div></div>
|
|
322
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00166">ExtAPI.cpp:166</a></div></div>
|
|
324
323
|
<div class="ttc" id="aExtAPI_8h_html"><div class="ttname"><a href="ExtAPI_8h.html">ExtAPI.h</a></div></div>
|
|
325
324
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
326
325
|
<div class="ttc" id="aclassSVF_1_1Options_html_a2dffc9d885fa53340a1cdbc028d7f24a"><div class="ttname"><a href="classSVF_1_1Options.html#a2dffc9d885fa53340a1cdbc028d7f24a">SVF::Options::ExtAPIPath</a></div><div class="ttdeci">static const Option< std::string > ExtAPIPath</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00251">Options.h:251</a></div></div>
|
|
327
326
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a58a764c27354d5f9b70995d30de65f1d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">SVF::ExtAPI::getExtAPI</a></div><div class="ttdeci">static ExtAPI * getExtAPI()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00040">ExtAPI.cpp:40</a></div></div>
|
|
328
327
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html"><div class="ttname"><a href="classSVF_1_1ExtAPI.html">SVF::ExtAPI</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00046">ExtAPI.h:46</a></div></div>
|
|
329
|
-
<div class="ttc" id="
|
|
330
|
-
<div class="ttc" id="
|
|
331
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00158">ExtAPI.cpp:158</a></div></div>
|
|
328
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00191">ExtAPI.cpp:191</a></div></div>
|
|
329
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00157">ExtAPI.cpp:157</a></div></div>
|
|
332
330
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
|
|
333
331
|
<div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
332
|
+
<div class="ttc" id="aExtAPI_8h_html_a3be52a096fe407bb55141117f1cf4c75"><div class="ttname"><a href="ExtAPI_8h.html#a3be52a096fe407bb55141117f1cf4c75">DEFAULT_EXTAPI_BC_PATH</a></div><div class="ttdeci">#define DEFAULT_EXTAPI_BC_PATH</div><div class="ttdoc">For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki...</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
|
|
334
333
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
335
334
|
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a3ce3e67c96a65484d8077d9e3a9efa7d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">SVF::ExtAPI::extBcPath</a></div><div class="ttdeci">static std::string extBcPath</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00053">ExtAPI.h:53</a></div></div>
|
|
336
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
337
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a26bc352dbfd1b2fe34106a73f1f6d50c"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">SVF::ExtAPI::getExtBcPath</a></div><div class="ttdeci">std::string getExtBcPath()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
338
|
-
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_aadc8f2e0ff777e3f611a7d741def0742"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">SVF::ExtAPI::is_memcpy</a></div><div class="ttdeci">bool is_memcpy(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
335
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_ac6d6bdc51a6b75d6d5741cb751559fe4"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">SVF::ExtAPI::is_realloc</a></div><div class="ttdeci">bool is_realloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00213">ExtAPI.cpp:213</a></div></div>
|
|
336
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_a26bc352dbfd1b2fe34106a73f1f6d50c"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a26bc352dbfd1b2fe34106a73f1f6d50c">SVF::ExtAPI::getExtBcPath</a></div><div class="ttdeci">std::string getExtBcPath()</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00123">ExtAPI.cpp:123</a></div></div>
|
|
337
|
+
<div class="ttc" id="aclassSVF_1_1ExtAPI_html_aadc8f2e0ff777e3f611a7d741def0742"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aadc8f2e0ff777e3f611a7d741def0742">SVF::ExtAPI::is_memcpy</a></div><div class="ttdeci">bool is_memcpy(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00175">ExtAPI.cpp:175</a></div></div>
|
|
339
338
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
340
339
|
<!-- start footer part -->
|
|
341
340
|
<hr class="footer"/><address class="footer"><small>
|