svf-tools 1.0.752 → 1.0.754
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/BoundedZ3Expr_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/BoundedZ3Expr_8h.html +24 -1
- package/SVF-doxygen/html/html/BoundedZ3Expr_8h_source.html +373 -376
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +76 -76
- package/SVF-doxygen/html/html/CFGNormalizer_8h.html +1 -1
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +29 -29
- package/SVF-doxygen/html/html/CFGrammar_8cpp.html +88 -0
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +568 -0
- package/SVF-doxygen/html/html/CFGrammar_8h.html +108 -0
- package/SVF-doxygen/html/html/CFGrammar_8h_source.html +643 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +120 -127
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +14 -14
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +12 -12
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +464 -409
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h.html +10 -2
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +120 -175
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +11 -11
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +60 -60
- package/SVF-doxygen/html/html/CFLSolver_8h.html +1 -1
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +19 -19
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/GrammarBuilder_8h.html +1 -1
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PAGGrammar_8txt.html +209 -0
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +11 -11
- package/SVF-doxygen/html/html/SingleAbsValue_8h_source.html +4 -4
- package/SVF-doxygen/html/html/VFGGrammar_8txt.html +119 -0
- package/SVF-doxygen/html/html/annotated.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +223 -220
- package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr.html +291 -296
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +119 -119
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.html +1051 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGrammar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +108 -114
- package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder-members.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +333 -280
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver-members.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1POCRHybridSolver.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +148 -145
- package/SVF-doxygen/html/html/classes.html +6 -6
- package/SVF-doxygen/html/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +7 -2
- package/SVF-doxygen/html/html/dir_7de7f3d0ab1cbd78bc64b135e4cd18be.html +80 -0
- package/SVF-doxygen/html/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -2
- package/SVF-doxygen/html/html/files.html +14 -13
- package/SVF-doxygen/html/html/functions_a.html +5 -5
- package/SVF-doxygen/html/html/functions_b.html +9 -7
- package/SVF-doxygen/html/html/functions_c.html +5 -5
- package/SVF-doxygen/html/html/functions_d.html +1 -1
- package/SVF-doxygen/html/html/functions_e.html +4 -4
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +5 -5
- package/SVF-doxygen/html/html/functions_func_b.html +9 -7
- package/SVF-doxygen/html/html/functions_func_c.html +5 -5
- package/SVF-doxygen/html/html/functions_func_d.html +1 -1
- package/SVF-doxygen/html/html/functions_func_e.html +3 -3
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +13 -13
- package/SVF-doxygen/html/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_func_n.html +2 -2
- package/SVF-doxygen/html/html/functions_func_p.html +2 -2
- package/SVF-doxygen/html/html/functions_func_r.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +15 -15
- package/SVF-doxygen/html/html/functions_h.html +3 -3
- package/SVF-doxygen/html/html/functions_i.html +2 -2
- package/SVF-doxygen/html/html/functions_k.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +13 -13
- package/SVF-doxygen/html/html/functions_p.html +16 -12
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +17 -19
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_type_k.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +2 -2
- package/SVF-doxygen/html/html/functions_w.html +9 -9
- package/SVF-doxygen/html/html/globals.html +6 -4
- package/SVF-doxygen/html/html/globals_defs.html +7 -0
- package/SVF-doxygen/html/html/globals_e.html +1 -1
- package/SVF-doxygen/html/html/globals_g.html +3 -3
- package/SVF-doxygen/html/html/globals_m.html +4 -1
- package/SVF-doxygen/html/html/globals_s.html +1 -1
- package/SVF-doxygen/html/html/globals_v.html +2 -2
- package/SVF-doxygen/html/html/globals_vars.html +12 -10
- package/SVF-doxygen/html/html/hierarchy.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -0
- package/SVF-doxygen/html/html/namespaceSVF.html +40 -2
- package/SVF-doxygen/html/html/namespacemembers_b.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
- package/SVF-doxygen/html/html/search/all_0.js +147 -146
- package/SVF-doxygen/html/html/search/all_1.js +478 -478
- package/SVF-doxygen/html/html/search/all_10.js +327 -325
- package/SVF-doxygen/html/html/search/all_11.js +208 -208
- package/SVF-doxygen/html/html/search/all_12.js +545 -545
- package/SVF-doxygen/html/html/search/all_13.js +189 -189
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- 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 +10 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +159 -156
- package/SVF-doxygen/html/html/search/all_3.js +637 -638
- package/SVF-doxygen/html/html/search/all_4.js +227 -227
- package/SVF-doxygen/html/html/search/all_5.js +156 -156
- package/SVF-doxygen/html/html/search/all_6.js +223 -223
- package/SVF-doxygen/html/html/search/all_7.js +1012 -1012
- package/SVF-doxygen/html/html/search/all_8.js +192 -192
- package/SVF-doxygen/html/html/search/all_9.js +597 -597
- package/SVF-doxygen/html/html/search/all_a.js +47 -47
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +113 -113
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -206
- package/SVF-doxygen/html/html/search/all_f.js +122 -122
- 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 +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +10 -10
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- 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 +19 -19
- 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 +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- 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 +13 -13
- 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 -2
- package/SVF-doxygen/html/html/search/defines_c.js +2 -2
- package/SVF-doxygen/html/html/search/defines_d.js +2 -6
- package/SVF-doxygen/html/html/search/defines_e.js +6 -3
- package/SVF-doxygen/html/html/search/defines_f.html +6 -2
- package/SVF-doxygen/html/html/search/defines_f.js +3 -26
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -1
- 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 +4 -4
- 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 +2 -2
- 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 -13
- 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 +40 -40
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +34 -34
- package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
- 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 +17 -17
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -17
- package/SVF-doxygen/html/html/search/enumvalues_e.js +11 -11
- 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 +49 -50
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +4 -4
- 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 -14
- 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 -19
- 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 +351 -351
- package/SVF-doxygen/html/html/search/functions_1.js +81 -80
- package/SVF-doxygen/html/html/search/functions_10.js +121 -121
- package/SVF-doxygen/html/html/search/functions_11.js +281 -281
- package/SVF-doxygen/html/html/search/functions_12.js +55 -55
- package/SVF-doxygen/html/html/search/functions_13.js +38 -38
- package/SVF-doxygen/html/html/search/functions_14.js +71 -71
- package/SVF-doxygen/html/html/search/functions_15.js +29 -29
- package/SVF-doxygen/html/html/search/functions_16.js +2 -2
- package/SVF-doxygen/html/html/search/functions_17.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +251 -251
- package/SVF-doxygen/html/html/search/functions_3.js +71 -71
- package/SVF-doxygen/html/html/search/functions_4.js +55 -55
- package/SVF-doxygen/html/html/search/functions_5.js +55 -55
- package/SVF-doxygen/html/html/search/functions_6.js +832 -832
- package/SVF-doxygen/html/html/search/functions_7.js +144 -144
- package/SVF-doxygen/html/html/search/functions_8.js +417 -417
- package/SVF-doxygen/html/html/search/functions_9.js +29 -29
- package/SVF-doxygen/html/html/search/functions_a.js +2 -2
- package/SVF-doxygen/html/html/search/functions_b.js +23 -23
- package/SVF-doxygen/html/html/search/functions_c.js +75 -75
- package/SVF-doxygen/html/html/search/functions_d.js +35 -35
- package/SVF-doxygen/html/html/search/functions_e.js +56 -56
- package/SVF-doxygen/html/html/search/functions_f.js +143 -143
- 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 +1 -1
- 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/searchdata.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- 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 +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- 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 +40 -40
- 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 +147 -146
- package/SVF-doxygen/html/html/search/variables_1.js +74 -74
- 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 +93 -93
- package/SVF-doxygen/html/html/search/variables_13.js +77 -77
- 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 +35 -35
- package/SVF-doxygen/html/html/search/variables_3.js +148 -148
- package/SVF-doxygen/html/html/search/variables_4.js +56 -56
- package/SVF-doxygen/html/html/search/variables_5.js +40 -40
- package/SVF-doxygen/html/html/search/variables_6.js +67 -67
- 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 +33 -33
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +25 -25
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +4 -4
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +5 -5
- package/package.json +1 -1
- package/svf/include/AbstractExecution/BoundedZ3Expr.h +8 -12
- package/svf/include/CFL/CFGNormalizer.h +11 -11
- package/svf/include/CFL/{CFLGrammar.h → CFGrammar.h} +5 -5
- package/svf/include/CFL/CFLAlias.h +2 -2
- package/svf/include/CFL/CFLBase.h +2 -2
- package/svf/include/CFL/CFLGramGraphChecker.h +1 -1
- package/svf/include/CFL/CFLGraphBuilder.h +30 -81
- package/svf/include/CFL/CFLSolver.h +8 -8
- package/svf/include/CFL/GrammarBuilder.h +1 -1
- package/svf/include/Graphs/CFLGraph.h +3 -3
- package/svf/lib/CFL/CFGNormalizer.cpp +11 -11
- package/svf/lib/CFL/{CFLGrammar.cpp → CFGrammar.cpp} +7 -7
- package/svf/lib/CFL/CFLBase.cpp +5 -11
- package/svf/lib/CFL/CFLGraphBuilder.cpp +125 -74
- package/svf/lib/CFL/CFLVF.cpp +2 -2
- /package/svf/include/CFL/{CFLGrammar.txt → grammar/PAGGrammar.txt} +0 -0
- /package/svf/include/CFL/{PEGGrammar.txt → grammar/PEGGrammar.txt} +0 -0
- /package/svf/include/CFL/{VFG.txt → grammar/VFGGrammar.txt} +0 -0
|
@@ -104,18 +104,18 @@ $(function() {
|
|
|
104
104
|
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  </div>
|
|
105
105
|
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div>
|
|
106
106
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div>
|
|
107
|
-
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#
|
|
107
|
+
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1"> 37</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">CFLGraphBuilder::addAttribute</a>(<a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> kind, <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attribute)</div>
|
|
108
108
|
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div>
|
|
109
|
-
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
109
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.find(kind) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.end())</div>
|
|
110
110
|
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
|
|
111
|
-
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<
|
|
112
|
-
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
111
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<CFGrammar::Attribute></a> attrs{attribute};</div>
|
|
112
|
+
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>.insert(make_pair(kind, attrs));</div>
|
|
113
113
|
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  }</div>
|
|
114
114
|
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">else</span></div>
|
|
115
115
|
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div>
|
|
116
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
116
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].find(attribute) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].end())</div>
|
|
117
117
|
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div>
|
|
118
|
-
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#
|
|
118
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">kindToAttrsMap</a>[kind].insert(attribute);</div>
|
|
119
119
|
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div>
|
|
120
120
|
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div>
|
|
121
121
|
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div>
|
|
@@ -163,420 +163,472 @@ $(function() {
|
|
|
163
163
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div>
|
|
164
164
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
|
|
165
165
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
|
|
166
|
-
<div class="line"><a name="
|
|
167
|
-
<div class="line"><a name="
|
|
168
|
-
<div class="line"><a name="
|
|
169
|
-
<div class="line"><a name="
|
|
170
|
-
<div class="line"><a name="
|
|
171
|
-
<div class="line"><a name="
|
|
172
|
-
<div class="line"><a name="
|
|
173
|
-
<div class="line"><a name="
|
|
174
|
-
<div class="line"><a name="
|
|
175
|
-
<div class="line"><a name="
|
|
176
|
-
<div class="line"><a name="
|
|
177
|
-
<div class="line"><a name="
|
|
178
|
-
<div class="line"><a name="
|
|
179
|
-
<div class="line"><a name="
|
|
180
|
-
<div class="line"><a name="
|
|
181
|
-
<div class="line"><a name="
|
|
182
|
-
<div class="line"><a name="
|
|
183
|
-
<div class="line"><a name="
|
|
184
|
-
<div class="line"><a name="
|
|
185
|
-
<div class="line"><a name="
|
|
186
|
-
<div class="line"><a name="
|
|
187
|
-
<div class="line"><a name="
|
|
188
|
-
<div class="line"><a name="
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="
|
|
200
|
-
<div class="line"><a name="
|
|
201
|
-
<div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="
|
|
203
|
-
<div class="line"><a name="
|
|
204
|
-
<div class="line"><a name="
|
|
205
|
-
<div class="line"><a name="
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="
|
|
214
|
-
<div class="line"><a name="
|
|
215
|
-
<div class="line"><a name="
|
|
216
|
-
<div class="line"><a name="
|
|
217
|
-
<div class="line"><a name="
|
|
218
|
-
<div class="line"><a name="
|
|
219
|
-
<div class="line"><a name="
|
|
220
|
-
<div class="line"><a name="
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="
|
|
223
|
-
<div class="line"><a name="
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="
|
|
232
|
-
<div class="line"><a name="
|
|
233
|
-
<div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="
|
|
237
|
-
<div class="line"><a name="
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="
|
|
241
|
-
<div class="line"><a name="
|
|
242
|
-
<div class="line"><a name="
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="
|
|
248
|
-
<div class="line"><a name="
|
|
249
|
-
<div class="line"><a name="
|
|
250
|
-
<div class="line"><a name="
|
|
251
|
-
<div class="line"><a name="
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="
|
|
266
|
-
<div class="line"><a name="
|
|
267
|
-
<div class="line"><a name="
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="
|
|
276
|
-
<div class="line"><a name="
|
|
277
|
-
<div class="line"><a name="
|
|
278
|
-
<div class="line"><a name="
|
|
279
|
-
<div class="line"><a name="
|
|
280
|
-
<div class="line"><a name="
|
|
281
|
-
<div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="
|
|
291
|
-
<div class="line"><a name="
|
|
292
|
-
<div class="line"><a name="
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
299
|
-
<div class="line"><a name="
|
|
300
|
-
<div class="line"><a name="
|
|
301
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  key.append(<span class="stringliteral">"bar"</span>);</div>
|
|
302
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[key]);</div>
|
|
166
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">template</span><<span class="keyword">class</span> N, <span class="keyword">class</span> E></div>
|
|
167
|
+
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383"> 101</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">CFLGraphBuilder::build</a>(<a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph<N,E></a>* graph, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction)</div>
|
|
168
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> {</div>
|
|
169
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(grammar-><a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>());</div>
|
|
170
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// buildlabelToKindMap(grammar);</span></div>
|
|
171
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
172
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div>
|
|
173
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>((*it).first);</div>
|
|
174
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
175
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
176
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
177
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
|
178
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  N* node = (*it).second;</div>
|
|
179
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span>(E* edge : node->getOutEdges())</div>
|
|
180
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div>
|
|
181
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> edgeLabel = edge->getEdgeKind();</div>
|
|
182
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
183
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (direction == <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995">BuildDirection::bidirection</a>)</div>
|
|
184
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
185
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = grammar-><a class="code" href="classSVF_1_1GrammarBase.html#acf42a1921b3af3fbb3d358736518f7b3">kindToStr</a>(edge);</div>
|
|
186
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
187
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), grammar-><a class="code" href="classSVF_1_1GrammarBase.html#a3aae4b70e2ee0238808a2126265a2e24">strToKind</a>(label));</div>
|
|
188
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
|
189
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
|
|
190
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
|
191
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
192
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div>
|
|
193
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
|
|
194
|
+
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#a2e97c964eb1e187a931f17da9672815f"> 128</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">CFLGraphBuilder::build</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fileName, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction)</div>
|
|
195
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div>
|
|
196
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">bool</span> isDot = (fileName.rfind(<span class="stringliteral">".dot"</span>) == fileName.length() - <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(<span class="stringliteral">".dot"</span>).length());</div>
|
|
197
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (isDot)</div>
|
|
198
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">buildFromDot</a>(fileName, grammar, direction);</div>
|
|
199
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
200
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">bool</span> isJson = (fileName.rfind(<span class="stringliteral">".json"</span>) == fileName.length() - <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(<span class="stringliteral">".json"</span>).length());</div>
|
|
201
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (isJson)</div>
|
|
202
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">buildFromJson</a>(fileName, grammar, direction);</div>
|
|
203
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  </div>
|
|
204
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">buildFromText</a>(fileName, grammar, direction);</div>
|
|
205
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
|
|
206
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
|
207
|
+
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f"> 142</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">CFLGraphBuilder::buildFromText</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fileName, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction)</div>
|
|
208
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
|
|
209
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
210
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(grammar-><a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>());</div>
|
|
211
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
212
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  std::cout << <span class="stringliteral">"Building CFL Graph from text file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div>
|
|
213
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div>
|
|
214
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  std::ifstream inputFile(fileName);</div>
|
|
215
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
|
216
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (!inputFile.is_open())</div>
|
|
217
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div>
|
|
218
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"Error opening "</span> << fileName << std::endl;</div>
|
|
219
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  abort();</div>
|
|
220
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
|
221
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
222
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> line;</div>
|
|
223
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.size();</div>
|
|
224
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div>
|
|
225
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
226
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">while</span> (getline(inputFile, line))</div>
|
|
227
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div>
|
|
228
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  std::vector<std::string> vec = <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae18227f257c9881541b84ca186680dfd">SVFUtil::split</a>(line, <span class="charliteral">'\t'</span>);</div>
|
|
229
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (vec.empty())</div>
|
|
230
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">continue</span>;</div>
|
|
231
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  lineNum += 1;</div>
|
|
232
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID = std::stoi(vec[0]);</div>
|
|
233
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstID = std::stoi(vec[1]);</div>
|
|
234
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *src = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(srcID);</div>
|
|
235
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *dst = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(dstID);</div>
|
|
236
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = vec[2];</div>
|
|
237
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.find(label) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.end())</div>
|
|
238
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
239
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">else</span></div>
|
|
240
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div>
|
|
241
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">Options::FlexSymMap</a>() == <span class="keyword">true</span>)</div>
|
|
242
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div>
|
|
243
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.insert({label, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div>
|
|
244
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
245
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
|
246
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div>
|
|
247
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
248
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) +</div>
|
|
249
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div>
|
|
250
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVFUtil::errMsg</a>(msg);</div>
|
|
251
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  std::cout << msg;</div>
|
|
252
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  abort();</div>
|
|
253
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div>
|
|
254
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div>
|
|
255
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
256
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
|
|
257
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  inputFile.close();</div>
|
|
258
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
259
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div>
|
|
260
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
261
|
+
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a"> 196</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">CFLGraphBuilder::buildFromDot</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fileName, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction)</div>
|
|
262
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div>
|
|
263
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
264
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(grammar-><a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>());</div>
|
|
265
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div>
|
|
266
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  std::ifstream inputFile(fileName);</div>
|
|
267
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::cout << <span class="stringliteral">"Building CFL Graph from dot file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div>
|
|
268
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  std::regex reg(<span class="stringliteral">"Node(\\w+)\\s*->\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]"</span>);</div>
|
|
269
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  std::cout << std::boolalpha;</div>
|
|
270
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div>
|
|
271
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.size();</div>
|
|
272
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
273
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">while</span> (getline(inputFile, lineString))</div>
|
|
274
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div>
|
|
275
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  lineNum += 1;</div>
|
|
276
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  std::smatch matches;</div>
|
|
277
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div>
|
|
278
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div>
|
|
279
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> srcID = std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16);</div>
|
|
280
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dstID = std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16);</div>
|
|
281
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = matches.str(3);</div>
|
|
282
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *src = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(srcID);</div>
|
|
283
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a> *dst = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">addGNode</a>(dstID);</div>
|
|
284
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.find(label) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.end())</div>
|
|
285
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
286
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">else</span></div>
|
|
287
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div>
|
|
288
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">Options::FlexSymMap</a>() == <span class="keyword">true</span>)</div>
|
|
289
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  {</div>
|
|
290
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>.insert({label, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div>
|
|
291
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
292
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
|
|
293
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">else</span></div>
|
|
294
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
295
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) +</div>
|
|
296
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div>
|
|
297
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVFUtil::errMsg</a>(msg);</div>
|
|
298
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  std::cout << msg;</div>
|
|
299
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  abort();</div>
|
|
300
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
|
|
303
301
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
|
|
304
302
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
305
303
|
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
306
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
307
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
308
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
309
|
-
<div class="line"><a name="l00242"></a><span class="lineno"
|
|
310
|
-
<div class="line"><a name="
|
|
311
|
-
<div class="line"><a name="
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> 
|
|
325
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> 
|
|
326
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
327
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
352
|
-
<div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
354
|
-
<div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
356
|
-
<div class="line"><a name="
|
|
357
|
-
<div class="line"><a name="
|
|
358
|
-
<div class="line"><a name="
|
|
359
|
-
<div class="line"><a name="
|
|
360
|
-
<div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="
|
|
366
|
-
<div class="line"><a name="
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="
|
|
391
|
-
<div class="line"><a name="
|
|
392
|
-
<div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
456
|
-
<div class="line"><a name="
|
|
457
|
-
<div class="line"><a name="
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
463
|
-
<div class="line"><a name="
|
|
464
|
-
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
304
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  inputFile.close();</div>
|
|
305
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
306
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> }</div>
|
|
307
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
|
308
|
+
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a"> 244</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">CFLGraphBuilder::buildFromJson</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fileName, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">BuildDirection</a> direction)</div>
|
|
309
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> {</div>
|
|
310
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(grammar-><a class="code" href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">getStartKind</a>());</div>
|
|
311
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
312
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> }</div>
|
|
313
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  </div>
|
|
314
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
|
315
|
+
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd"> 251</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">AliasCFLGraphBuilder::buildBigraph</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> startKind, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</div>
|
|
316
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> {</div>
|
|
317
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(startKind);</div>
|
|
318
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div>
|
|
319
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
320
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
321
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div>
|
|
322
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>((*it).first);</div>
|
|
323
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
324
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
325
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
326
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div>
|
|
327
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = (*it).second;</div>
|
|
328
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>())</div>
|
|
329
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  {</div>
|
|
330
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> edgeLabel = edge->getEdgeKind();</div>
|
|
331
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// Need to get the offset from the Const Edge</span></div>
|
|
332
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div>
|
|
333
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div>
|
|
334
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
335
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a> *nGepEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge);</div>
|
|
336
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = nGepEdge-><a class="code" href="classSVF_1_1NormalGepCGEdge.html#ad00a9492e48686cb8a5d593a1a52e872">getConstantFieldIdx</a>();</div>
|
|
337
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
338
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
339
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
340
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edge->getEdgeKind()];</div>
|
|
341
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
342
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
343
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
344
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
345
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">else</span></div>
|
|
346
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
|
347
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
348
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edge->getEdgeKind()];</div>
|
|
349
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
350
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
351
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div>
|
|
352
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div>
|
|
353
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
354
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
355
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> }</div>
|
|
356
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
|
|
357
|
+
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880"> 293</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">AliasCFLGraphBuilder::buildBiPEGgraph</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> startKind, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag)</div>
|
|
358
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> {</div>
|
|
359
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(startKind);</div>
|
|
360
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
|
|
361
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
362
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
363
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
364
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>((*it).first);</div>
|
|
365
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
366
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div>
|
|
367
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
368
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
369
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = (*it).second;</div>
|
|
370
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>())</div>
|
|
371
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div>
|
|
372
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">if</span> (edge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div>
|
|
373
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
374
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (pag-><a class="code" href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">isNullPtr</a>(edge->getSrcID()))</div>
|
|
375
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">continue</span>;</div>
|
|
376
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* Dst = edge->getDstNode();</div>
|
|
377
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* DerefNode = <span class="keyword">nullptr</span>;</div>
|
|
378
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* CFLDerefNode = <span class="keyword">nullptr</span>;</div>
|
|
379
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* DstInEdge : Dst-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div>
|
|
380
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {</div>
|
|
381
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span> (DstInEdge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div>
|
|
382
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div>
|
|
383
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  DerefNode = DstInEdge->getSrcNode();</div>
|
|
384
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  CFLDerefNode = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(DstInEdge->getSrcID());</div>
|
|
385
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">break</span>;</div>
|
|
386
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
|
|
387
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div>
|
|
388
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div>
|
|
389
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div>
|
|
390
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div>
|
|
391
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-><a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>();</div>
|
|
392
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  CFLDerefNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>(refId);</div>
|
|
393
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>(refId, CFLDerefNode);</div>
|
|
394
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div>
|
|
395
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div>
|
|
396
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
397
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
398
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
|
399
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(CFLDerefNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div>
|
|
400
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div>
|
|
401
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
402
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(CFLDerefNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
403
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div>
|
|
404
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div>
|
|
405
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div>
|
|
406
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* Src = edge->getSrcNode();</div>
|
|
407
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* DerefNode = <span class="keyword">nullptr</span>;</div>
|
|
408
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* CFLDerefNode = <span class="keyword">nullptr</span>;</div>
|
|
409
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* SrcInEdge : Src-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div>
|
|
410
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div>
|
|
411
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">if</span> (SrcInEdge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div>
|
|
412
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div>
|
|
413
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  DerefNode = SrcInEdge->getSrcNode();</div>
|
|
414
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  CFLDerefNode = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(SrcInEdge->getSrcID());</div>
|
|
415
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
|
|
416
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div>
|
|
417
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div>
|
|
418
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div>
|
|
419
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag-><a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>();</div>
|
|
420
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  CFLDerefNode = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>(refId);</div>
|
|
421
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>(refId, CFLDerefNode);</div>
|
|
422
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div>
|
|
423
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div>
|
|
424
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
425
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
426
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  }</div>
|
|
427
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(CFLDerefNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div>
|
|
428
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div>
|
|
429
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
430
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(CFLDerefNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
431
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
|
432
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>)</div>
|
|
433
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div>
|
|
434
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">connectVGep</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>, graph, edge->getSrcNode(), edge->getDstNode(), 8, pag);</div>
|
|
435
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div>
|
|
436
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">else</span></div>
|
|
437
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div>
|
|
438
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> edgeLabel = edge->getEdgeKind();</div>
|
|
439
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="comment">// Need to get the offset from the Const Edge</span></div>
|
|
440
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div>
|
|
441
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div>
|
|
442
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div>
|
|
443
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a> *nGepEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge);</div>
|
|
444
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = nGepEdge-><a class="code" href="classSVF_1_1NormalGepCGEdge.html#ad00a9492e48686cb8a5d593a1a52e872">getConstantFieldIdx</a>();</div>
|
|
445
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
446
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
447
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
448
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edge->getEdgeKind()];</div>
|
|
449
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
450
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
451
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
452
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
453
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">else</span></div>
|
|
454
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  {</div>
|
|
455
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
456
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edge->getEdgeKind()];</div>
|
|
457
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
458
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
459
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div>
|
|
460
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
|
|
461
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div>
|
|
465
462
|
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div>
|
|
466
|
-
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">
|
|
467
|
-
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> 
|
|
468
|
-
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> 
|
|
469
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
|
|
470
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> 
|
|
471
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> 
|
|
472
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> 
|
|
473
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> 
|
|
474
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> 
|
|
475
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> 
|
|
476
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> 
|
|
477
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> 
|
|
478
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
479
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
480
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> 
|
|
481
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> 
|
|
482
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> 
|
|
483
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> 
|
|
484
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> 
|
|
485
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> 
|
|
486
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> 
|
|
487
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> 
|
|
488
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> 
|
|
489
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> 
|
|
490
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> 
|
|
491
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> 
|
|
492
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
493
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
494
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
495
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> 
|
|
496
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
497
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
498
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
499
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
500
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
501
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
502
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
|
|
503
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> 
|
|
504
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> 
|
|
505
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
506
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> 
|
|
507
|
-
<div class="line"><a name="l00452"></a><span class="lineno"
|
|
508
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> 
|
|
509
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> 
|
|
510
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> 
|
|
511
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> 
|
|
512
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
513
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> 
|
|
514
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
515
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
516
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
517
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
518
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
519
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
520
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
521
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> 
|
|
522
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
523
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> 
|
|
524
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="
|
|
525
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> 
|
|
526
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> 
|
|
527
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> 
|
|
528
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="
|
|
529
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="
|
|
530
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <
|
|
531
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> 
|
|
532
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> 
|
|
533
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> 
|
|
534
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> 
|
|
535
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
536
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
537
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
538
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> 
|
|
539
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> 
|
|
540
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
541
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
542
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
|
|
543
|
-
<div class="line"><a name="l00488"></a><span class="lineno"
|
|
544
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> 
|
|
545
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> 
|
|
546
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
547
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
548
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
|
549
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> 
|
|
550
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> 
|
|
463
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
464
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div>
|
|
465
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
|
466
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">void</span> AliasCFLGraphBuilder::AliasCFLGraphBuilder::connectVGep(<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *src, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> level, <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag)</div>
|
|
467
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> {</div>
|
|
468
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">if</span> (level == 0) <span class="keywordflow">return</span>;</div>
|
|
469
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  level -= 1;</div>
|
|
470
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> eit = src-><a class="code" href="classSVF_1_1ConstraintNode.html#ae6a98932b0f0732d4af1ca8266d58077">getAddrInEdges</a>().begin(); eit != src-><a class="code" href="classSVF_1_1ConstraintNode.html#ae6a98932b0f0732d4af1ca8266d58077">getAddrInEdges</a>().end(); eit++)</div>
|
|
471
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div>
|
|
472
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = pag-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>((*eit)->getSrcID());</div>
|
|
473
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxField = 0 ; maxField < mem-><a class="code" href="classSVF_1_1MemObj.html#aa14b59ba9e14140bf158f3c4ebef9fa5">getNumOfElements</a>(); maxField++)</div>
|
|
474
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div>
|
|
475
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  addBiGepCFLEdge(cflGraph, (*eit)->getDstNode(), dst, maxField);</div>
|
|
476
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div>
|
|
477
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div>
|
|
478
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> eit = src-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(); eit != src-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end() && level != 0; eit++)</div>
|
|
479
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  {</div>
|
|
480
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  connectVGep(cflGraph, graph, (*eit)->getSrcNode(), dst, level, pag);</div>
|
|
481
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div>
|
|
482
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span>;</div>
|
|
483
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> }</div>
|
|
484
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  </div>
|
|
485
|
+
<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasCFLGraphBuilder.html#a3069f804d6e63c5d74dc0b4d7399d43e"> 433</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#a3069f804d6e63c5d74dc0b4d7399d43e">AliasCFLGraphBuilder::addBiCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* src, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst, <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> kind)</div>
|
|
486
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> {</div>
|
|
487
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), kind);</div>
|
|
488
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[kind];</div>
|
|
489
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
490
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
491
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span>;</div>
|
|
492
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> }</div>
|
|
493
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  </div>
|
|
494
|
+
<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1AliasCFLGraphBuilder.html#aa998adcd267038210c2ed93148d00333"> 442</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AliasCFLGraphBuilder.html#aa998adcd267038210c2ed93148d00333">AliasCFLGraphBuilder::addBiGepCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *cflGraph, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* src, <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst, <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attri)</div>
|
|
495
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> {</div>
|
|
496
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">CFLEdge::GEdgeFlag</a> edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attri, <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>);</div>
|
|
497
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), edgeLabel);</div>
|
|
498
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>];</div>
|
|
499
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
500
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attri, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
501
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">return</span>;</div>
|
|
502
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> }</div>
|
|
503
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
|
|
504
|
+
<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1"> 452</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">VFCFLGraphBuilder::buildBigraph</a>(<a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *graph, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> startKind, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</div>
|
|
505
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> {</div>
|
|
506
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(startKind);</div>
|
|
507
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
|
|
508
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">buildlabelToKindMap</a>(grammar);</div>
|
|
509
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
510
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div>
|
|
511
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>* node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLNode.html">CFLNode</a>((*it).first);</div>
|
|
512
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">addCFLNode</a>((*it).first, node);</div>
|
|
513
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
514
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it!= graph-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it++)</div>
|
|
515
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div>
|
|
516
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = (*it).second;</div>
|
|
517
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge : node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>())</div>
|
|
518
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div>
|
|
519
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFGrammar::Kind</a> edgeLabel;</div>
|
|
520
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// Get 'a' edge : IntraDirectVF || IntraIndirectVF</span></div>
|
|
521
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span> (edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">VFGEdge::IntraDirectVF</a> || edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5aa80551154bcfbfa84f02df32ead6b1b0">VFGEdge::IntraIndirectVF</a> || edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5aae3168b6bc9141e4a1f3723eae4f3375">VFGEdge::TheadMHPIndirectVF</a> )</div>
|
|
522
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  {</div>
|
|
523
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  edgeLabel = 0;</div>
|
|
524
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
525
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
526
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edge->getEdgeKind()];</div>
|
|
527
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  label.append(<span class="stringliteral">"bar"</span>);</div>
|
|
528
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]);</div>
|
|
529
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div>
|
|
530
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">// Get 'call' edge : CallDirVF || CallIndVF</span></div>
|
|
531
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">VFGEdge::CallDirVF</a> )</div>
|
|
532
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  {</div>
|
|
533
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  edgeLabel = 1;</div>
|
|
534
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a> *attributedEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge);</div>
|
|
535
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = attributedEdge-><a class="code" href="classSVF_1_1CallDirSVFGEdge.html#ae6051f47731b62c456216554f7b7dba6">getCallSiteId</a>();</div>
|
|
536
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
537
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
538
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
539
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edgeLabel];</div>
|
|
540
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
541
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
542
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
543
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div>
|
|
544
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">// Get 'call' edge : CallIndVF</span></div>
|
|
545
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a978c857fcc06d2f988bc9ce16ce10145">VFGEdge::CallIndVF</a> )</div>
|
|
546
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  {</div>
|
|
547
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  edgeLabel = 1;</div>
|
|
548
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classSVF_1_1CallIndSVFGEdge.html">CallIndSVFGEdge</a> *attributedEdge = SVFUtil::dyn_cast<CallIndSVFGEdge>(edge);</div>
|
|
549
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = attributedEdge-><a class="code" href="classSVF_1_1CallIndSVFGEdge.html#a3742b87170e0b48edc71ffdd6e5350aa">getCallSiteId</a>();</div>
|
|
550
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
551
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
552
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
553
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edgeLabel];</div>
|
|
554
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
555
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
556
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
557
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div>
|
|
558
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// Get 'ret' edge : RetDirVF</span></div>
|
|
559
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">VFGEdge::RetDirVF</a> )</div>
|
|
560
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div>
|
|
561
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  edgeLabel = 2;</div>
|
|
562
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a> *attributedEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge);</div>
|
|
563
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = attributedEdge-><a class="code" href="classSVF_1_1RetDirSVFGEdge.html#a86ef0a34735096e86d3731cd6ecf769a">getCallSiteId</a>();</div>
|
|
564
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
565
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
566
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
567
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edgeLabel];</div>
|
|
568
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
569
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
570
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
571
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div>
|
|
572
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="comment">// Get 'ret' edge : RetIndVF</span></div>
|
|
573
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5ac8124172b3f5f7fc94e895f6b192b668">VFGEdge::RetIndVF</a> )</div>
|
|
574
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  {</div>
|
|
575
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  edgeLabel = 2;</div>
|
|
576
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="classSVF_1_1RetIndSVFGEdge.html">RetIndSVFGEdge</a> *attributedEdge = SVFUtil::dyn_cast<RetIndSVFGEdge>(edge);</div>
|
|
577
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFGrammar::Attribute</a> attr = attributedEdge-><a class="code" href="classSVF_1_1RetIndSVFGEdge.html#a04f211a0e3e21f60a299a744d3d1e452">getCallSiteId</a>();</div>
|
|
578
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(edgeLabel, attr);</div>
|
|
579
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, edgeLabel);</div>
|
|
580
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), edgeLabel);</div>
|
|
581
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> label = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">kindToLabelMap</a>[edgeLabel];</div>
|
|
582
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  label.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div>
|
|
583
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getDstID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label]));</div>
|
|
584
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">labelToKindMap</a>[label], attr);</div>
|
|
585
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  }</div>
|
|
588
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
589
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> }</div>
|
|
590
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  </div>
|
|
591
|
+
<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20"> 539</a></span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>* <a class="code" href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20">VFCFLGraphBuilder::buildBiPEGgraph</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">Kind</a> startKind, <a class="code" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag)</div>
|
|
592
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> {</div>
|
|
593
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a> *<a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLGraph.html">CFLGraph</a>(startKind);</div>
|
|
594
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">cflGraph</a>;</div>
|
|
595
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> }</div>
|
|
596
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  </div>
|
|
597
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
|
|
598
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> } <span class="comment">// end of SVF namespace</span></div>
|
|
551
599
|
</div><!-- fragment --></div><!-- contents -->
|
|
600
|
+
<div class="ttc" id="anamespaceSVF_html_a165cd8904ba9f1ae6e0fa1752ba78caa"><div class="ttname"><a href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">SVF::BuildDirection</a></div><div class="ttdeci">BuildDirection</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00040">CFLGraphBuilder.h:40</a></div></div>
|
|
552
601
|
<div class="ttc" id="aclassSVF_1_1Options_html_a8e22c3bca5ee0e4e7d90e857a5ea8031"><div class="ttname"><a href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const Option< bool > FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00265">Options.h:265</a></div></div>
|
|
553
|
-
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_ae7a9f2103c68829290c1bd5fd9cde321"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ae7a9f2103c68829290c1bd5fd9cde321">SVF::AliasCFLGraphBuilder::addBiCFLEdge</a></div><div class="ttdeci">void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFLGrammar::Kind label)</div><div class="ttdoc">Handles edges, with the exception of the GEP.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00382">CFLGraphBuilder.cpp:382</a></div></div>
|
|
554
602
|
<div class="ttc" id="aclassSVF_1_1RetDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetDirSVFGEdge.html">SVF::RetDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00254">VFGEdge.h:254</a></div></div>
|
|
555
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
603
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00065">CFLGraphBuilder.h:65</a></div></div>
|
|
556
604
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|
|
557
605
|
<div class="ttc" id="aclassSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
|
|
558
606
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
|
|
559
607
|
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_a9feeeca8a919b19693e48d6a382c8871"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#a9feeeca8a919b19693e48d6a382c8871">SVF::AliasCFLGraphBuilder::connectVGep</a></div><div class="ttdeci">void connectVGep(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR *pag)</div><div class="ttdoc">Connects VGep (Variable GEP)</div></div>
|
|
560
|
-
<div class="ttc" id="
|
|
608
|
+
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_a3069f804d6e63c5d74dc0b4d7399d43e"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#a3069f804d6e63c5d74dc0b4d7399d43e">SVF::AliasCFLGraphBuilder::addBiCFLEdge</a></div><div class="ttdeci">void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFGrammar::Kind label)</div><div class="ttdoc">Handles edges, with the exception of the GEP.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00433">CFLGraphBuilder.cpp:433</a></div></div>
|
|
609
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a8921a7d7a006e31f13d88b8c808c931b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">SVF::GrammarBase::getStartKind</a></div><div class="ttdeci">Kind getStartKind()</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00205">CFGrammar.h:205</a></div></div>
|
|
561
610
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a08201e6cbff4817e44568747a966b71d">SVF::VFGEdge::IntraDirectVF</a></div><div class="ttdeci">@ IntraDirectVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00053">VFGEdge.h:53</a></div></div>
|
|
562
611
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
|
|
563
612
|
<div class="ttc" id="aclassSVF_1_1CFLGraph_html_a9eea8083dbeaf898948595b1d75cfee2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">SVF::CFLGraph::addCFLEdge</a></div><div class="ttdeci">virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00047">CFLGraph.cpp:47</a></div></div>
|
|
564
613
|
<div class="ttc" id="aclassSVF_1_1CallIndSVFGEdge_html_a3742b87170e0b48edc71ffdd6e5350aa"><div class="ttname"><a href="classSVF_1_1CallIndSVFGEdge.html#a3742b87170e0b48edc71ffdd6e5350aa">SVF::CallIndSVFGEdge::getCallSiteId</a></div><div class="ttdeci">CallSiteID getCallSiteId() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00136">SVFGEdge.h:136</a></div></div>
|
|
565
614
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
566
615
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">SVF::ConstraintEdge::NormalGep</a></div><div class="ttdeci">@ NormalGep</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
567
|
-
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a04140ef06feee613506529fd8c23665e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a04140ef06feee613506529fd8c23665e">SVF::GrammarBase::getNonterminals</a></div><div class="ttdeci">Map< std::string, Kind > & getNonterminals()</div><div class="ttdef"><b>Definition:</b> <a href="
|
|
616
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a04140ef06feee613506529fd8c23665e"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a04140ef06feee613506529fd8c23665e">SVF::GrammarBase::getNonterminals</a></div><div class="ttdeci">Map< std::string, Kind > & getNonterminals()</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00160">CFGrammar.h:160</a></div></div>
|
|
568
617
|
<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>
|
|
569
|
-
<div class="ttc" id="
|
|
570
|
-
<div class="ttc" id="
|
|
618
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1e3b5220f536443019ea25262169498a"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1e3b5220f536443019ea25262169498a">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Dot file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00196">CFLGraphBuilder.cpp:196</a></div></div>
|
|
619
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a27b247b46ce0b467459fcc2d53f50383"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">SVF::CFLGraphBuilder::build</a></div><div class="ttdeci">CFLGraph * build(GenericGraph< N, E > *graph, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00101">CFLGraphBuilder.cpp:101</a></div></div>
|
|
620
|
+
<div class="ttc" id="aclassSVF_1_1VFCFLGraphBuilder_html_ac4a6620622ad6642ed8543e0f8c65c20"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#ac4a6620622ad6642ed8543e0f8c65c20">SVF::VFCFLGraphBuilder::buildBiPEGgraph</a></div><div class="ttdeci">CFLGraph * buildBiPEGgraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR *pag)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00539">CFLGraphBuilder.cpp:539</a></div></div>
|
|
571
621
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">SVF::VFGEdge::CallDirVF</a></div><div class="ttdeci">@ CallDirVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00055">VFGEdge.h:55</a></div></div>
|
|
622
|
+
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_aa998adcd267038210c2ed93148d00333"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#aa998adcd267038210c2ed93148d00333">SVF::AliasCFLGraphBuilder::addBiGepCFLEdge</a></div><div class="ttdeci">void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFGrammar::Attribute attri)</div><div class="ttdoc">Adds bidirectional GEP edges with attributes.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00442">CFLGraphBuilder.cpp:442</a></div></div>
|
|
572
623
|
<div class="ttc" id="aclassSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
|
|
573
624
|
<div class="ttc" id="aclassSVF_1_1CallDirSVFGEdge_html_ae6051f47731b62c456216554f7b7dba6"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html#ae6051f47731b62c456216554f7b7dba6">SVF::CallDirSVFGEdge::getCallSiteId</a></div><div class="ttdeci">CallSiteID getCallSiteId() const</div><div class="ttdoc">Return callsite ID.</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00223">VFGEdge.h:223</a></div></div>
|
|
574
625
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">SVF::ConstraintEdge::Copy</a></div><div class="ttdeci">@ Copy</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
575
626
|
<div class="ttc" id="aclassSVF_1_1CFLGraph_html"><div class="ttname"><a href="classSVF_1_1CFLGraph.html">SVF::CFLGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00155">CFLGraph.h:155</a></div></div>
|
|
576
627
|
<div class="ttc" id="aclassSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00061">GenericGraph.h:61</a></div></div>
|
|
628
|
+
<div class="ttc" id="anamespaceSVF_html_a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995"><div class="ttname"><a href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caaaf3515b032dca85081a3d653d0cb9b995">SVF::BuildDirection::bidirection</a></div><div class="ttdeci">@ bidirection</div></div>
|
|
577
629
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
578
630
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_aa14b59ba9e14140bf158f3c4ebef9fa5"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa14b59ba9e14140bf158f3c4ebef9fa5">SVF::MemObj::getNumOfElements</a></div><div class="ttdeci">u32_t getNumOfElements() const</div><div class="ttdoc">Get the number of elements of this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00427">SymbolTableInfo.cpp:427</a></div></div>
|
|
579
|
-
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a44232dfc5b9a13dfe9b72ff18634ab37"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a44232dfc5b9a13dfe9b72ff18634ab37">SVF::GrammarBase::getTerminals</a></div><div class="ttdeci">Map< std::string, Kind > & getTerminals()</div><div class="ttdef"><b>Definition:</b> <a href="
|
|
631
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a44232dfc5b9a13dfe9b72ff18634ab37"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a44232dfc5b9a13dfe9b72ff18634ab37">SVF::GrammarBase::getTerminals</a></div><div class="ttdeci">Map< std::string, Kind > & getTerminals()</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00170">CFGrammar.h:170</a></div></div>
|
|
580
632
|
<div class="ttc" id="aclassSVF_1_1RetIndSVFGEdge_html_a04f211a0e3e21f60a299a744d3d1e452"><div class="ttname"><a href="classSVF_1_1RetIndSVFGEdge.html#a04f211a0e3e21f60a299a744d3d1e452">SVF::RetIndSVFGEdge::getCallSiteId</a></div><div class="ttdeci">CallSiteID getCallSiteId() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00175">SVFGEdge.h:175</a></div></div>
|
|
581
633
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
582
634
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8288c583cfcbfdf9aa2ac2103c0e7191">SVF::VFGEdge::RetDirVF</a></div><div class="ttdeci">@ RetDirVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00056">VFGEdge.h:56</a></div></div>
|
|
@@ -584,10 +636,9 @@ $(function() {
|
|
|
584
636
|
<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>
|
|
585
637
|
<div class="ttc" id="aCFLGraphBuilder_8h_html"><div class="ttname"><a href="CFLGraphBuilder_8h.html">CFLGraphBuilder.h</a></div></div>
|
|
586
638
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a978c857fcc06d2f988bc9ce16ce10145"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a978c857fcc06d2f988bc9ce16ce10145">SVF::VFGEdge::CallIndVF</a></div><div class="ttdeci">@ CallIndVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00057">VFGEdge.h:57</a></div></div>
|
|
587
|
-
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_a715213d0b521b676832ec73b38d2014e"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#a715213d0b521b676832ec73b38d2014e">SVF::AliasCFLGraphBuilder::addBiGepCFLEdge</a></div><div class="ttdeci">void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode *src, ConstraintNode *dst, CFLGrammar::Attribute attri)</div><div class="ttdoc">Adds bidirectional GEP edges with attributes.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00391">CFLGraphBuilder.cpp:391</a></div></div>
|
|
588
639
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdeci">@ VariantGep</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
589
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1ecf9cad8707ba07d3e44624ea273f2f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">SVF::CFLGraphBuilder::labelToKindMap</a></div><div class="ttdeci">Map< std::string, Kind > labelToKindMap</div><div class="ttdoc">Maps to maintain mapping between labels and kinds.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
590
|
-
<div class="ttc" id="aclassSVF_1_1VFCFLGraphBuilder_html_acd5ade19c0e058bfb41a1a8dd84748e1"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">SVF::VFCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(SVFG *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from SVF...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#
|
|
640
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a1ecf9cad8707ba07d3e44624ea273f2f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a1ecf9cad8707ba07d3e44624ea273f2f">SVF::CFLGraphBuilder::labelToKindMap</a></div><div class="ttdeci">Map< std::string, Kind > labelToKindMap</div><div class="ttdoc">Maps to maintain mapping between labels and kinds.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00059">CFLGraphBuilder.h:59</a></div></div>
|
|
641
|
+
<div class="ttc" id="aclassSVF_1_1VFCFLGraphBuilder_html_acd5ade19c0e058bfb41a1a8dd84748e1"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">SVF::VFCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(SVFG *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from SVF...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00452">CFLGraphBuilder.cpp:452</a></div></div>
|
|
591
642
|
<div class="ttc" id="aclassSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
|
|
592
643
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">SVF::ConstraintEdge::Store</a></div><div class="ttdeci">@ Store</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
593
644
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
@@ -595,46 +646,50 @@ $(function() {
|
|
|
595
646
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdeci">@ Load</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
596
647
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
597
648
|
<div class="ttc" id="aclassSVF_1_1NormalGepCGEdge_html_a79033645683ead9a7404cd35fd936092"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">SVF::NormalGepCGEdge::classof</a></div><div class="ttdeci">static bool classof(const NormalGepCGEdge *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast:</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00277">ConsGEdge.h:277</a></div></div>
|
|
598
|
-
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="
|
|
599
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af034366ce280120e5cd1a5685894e9ac"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">SVF::CFLGraphBuilder::cflGraph</a></div><div class="ttdeci">CFLGraph * cflGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
649
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00039">CFGrammar.h:39</a></div></div>
|
|
650
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af034366ce280120e5cd1a5685894e9ac"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af034366ce280120e5cd1a5685894e9ac">SVF::CFLGraphBuilder::cflGraph</a></div><div class="ttdeci">CFLGraph * cflGraph</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00066">CFLGraphBuilder.h:66</a></div></div>
|
|
600
651
|
<div class="ttc" id="aclassSVF_1_1RetDirSVFGEdge_html_a86ef0a34735096e86d3731cd6ecf769a"><div class="ttname"><a href="classSVF_1_1RetDirSVFGEdge.html#a86ef0a34735096e86d3731cd6ecf769a">SVF::RetDirSVFGEdge::getCallSiteId</a></div><div class="ttdeci">CallSiteID getCallSiteId() const</div><div class="ttdoc">Return callsite ID.</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00266">VFGEdge.h:266</a></div></div>
|
|
601
|
-
<div class="ttc" id="
|
|
652
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a41f8cc1264aa99c581e1d6f3150a2d48"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a41f8cc1264aa99c581e1d6f3150a2d48">SVF::CFLGraphBuilder::Kind</a></div><div class="ttdeci">CFGrammar::Kind Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00055">CFLGraphBuilder.h:55</a></div></div>
|
|
653
|
+
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_ac74b55198d73acebb9843fd13c1fd880"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">SVF::AliasCFLGraphBuilder::buildBiPEGgraph</a></div><div class="ttdeci">CFLGraph * buildBiPEGgraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR *pag)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00293">CFLGraphBuilder.cpp:293</a></div></div>
|
|
602
654
|
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aec30ce1ad7be5ac2e41f73ddba356fd9"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aec30ce1ad7be5ac2e41f73ddba356fd9">SVF::CFLGraphBuilder::addGNode</a></div><div class="ttdeci">CFLNode * addGNode(u32_t NodeID)</div><div class="ttdoc">add src and dst node from file</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00082">CFLGraphBuilder.cpp:82</a></div></div>
|
|
603
655
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00197">GenericGraph.h:197</a></div></div>
|
|
604
656
|
<div class="ttc" id="aclassSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
|
|
605
657
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
|
|
606
|
-
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_ab19243c4aceffce7b257f3d8cb3050fd"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">SVF::AliasCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from Gen...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#
|
|
607
|
-
<div class="ttc" id="
|
|
608
|
-
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="
|
|
658
|
+
<div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_ab19243c4aceffce7b257f3d8cb3050fd"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">SVF::AliasCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from Gen...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00251">CFLGraphBuilder.cpp:251</a></div></div>
|
|
659
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aa1a24c858e46b68e9f6a99668d880f6a"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aa1a24c858e46b68e9f6a99668d880f6a">SVF::CFLGraphBuilder::buildFromJson</a></div><div class="ttdeci">CFLGraph * buildFromJson(std::string filename, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Json file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00244">CFLGraphBuilder.cpp:244</a></div></div>
|
|
660
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00040">CFGrammar.h:40</a></div></div>
|
|
609
661
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00414">GenericGraph.h:414</a></div></div>
|
|
610
|
-
<div class="ttc" id="aclassSVF_1_1GrammarBase_html"><div class="ttname"><a href="classSVF_1_1GrammarBase.html">SVF::GrammarBase</a></div><div class="ttdef"><b>Definition:</b> <a href="
|
|
662
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html"><div class="ttname"><a href="classSVF_1_1GrammarBase.html">SVF::GrammarBase</a></div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00036">CFGrammar.h:36</a></div></div>
|
|
611
663
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5aae3168b6bc9141e4a1f3723eae4f3375"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5aae3168b6bc9141e4a1f3723eae4f3375">SVF::VFGEdge::TheadMHPIndirectVF</a></div><div class="ttdeci">@ TheadMHPIndirectVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00059">VFGEdge.h:59</a></div></div>
|
|
664
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_a3aae4b70e2ee0238808a2126265a2e24"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a3aae4b70e2ee0238808a2126265a2e24">SVF::GrammarBase::strToKind</a></div><div class="ttdeci">Kind strToKind(std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00055">CFGrammar.cpp:55</a></div></div>
|
|
612
665
|
<div class="ttc" id="aclassSVF_1_1ConstraintNode_html_ae6a98932b0f0732d4af1ca8266d58077"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ae6a98932b0f0732d4af1ca8266d58077">SVF::ConstraintNode::getAddrInEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy & getAddrInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00143">ConsGNode.h:143</a></div></div>
|
|
613
666
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
614
667
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
615
668
|
<div class="ttc" id="aclassSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">SVF::ConstraintEdge::Addr</a></div><div class="ttdeci">@ Addr</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
616
|
-
<div class="ttc" id="
|
|
669
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af34aa7ae71e100d8bbe7c1b17c1f0068"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af34aa7ae71e100d8bbe7c1b17c1f0068">SVF::CFLGraphBuilder::kindToAttrsMap</a></div><div class="ttdeci">Map< CFGrammar::Kind, Set< CFGrammar::Attribute > > kindToAttrsMap</div><div class="ttdoc">Map to maintain attributes associated with each kind.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00063">CFLGraphBuilder.h:63</a></div></div>
|
|
617
670
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a18ca66c199b910b15f1bfa77dcc98c30"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">SVF::SVFIR::isNullPtr</a></div><div class="ttdeci">bool isNullPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00417">SVFIR.h:417</a></div></div>
|
|
618
671
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5aa80551154bcfbfa84f02df32ead6b1b0"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5aa80551154bcfbfa84f02df32ead6b1b0">SVF::VFGEdge::IntraIndirectVF</a></div><div class="ttdeci">@ IntraIndirectVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00054">VFGEdge.h:54</a></div></div>
|
|
619
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a6c9fa25204550dc5bea1cae52a61472b"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar)</div><div class="ttdoc">Method to build a CFL graph from a Dot file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00153">CFLGraphBuilder.cpp:153</a></div></div>
|
|
620
672
|
<div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
621
673
|
<div class="ttc" id="aclassSVF_1_1CFLNode_html"><div class="ttname"><a href="classSVF_1_1CFLNode.html">SVF::CFLNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00076">CFLGraph.h:76</a></div></div>
|
|
622
674
|
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a01e5d31c43d40f8a518aa8d371b085d8"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a01e5d31c43d40f8a518aa8d371b085d8">SVF::CFLGraphBuilder::buildlabelToKindMap</a></div><div class="ttdeci">void buildlabelToKindMap(GrammarBase *grammar)</div><div class="ttdoc">build label and kind connect from the grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00054">CFLGraphBuilder.cpp:54</a></div></div>
|
|
623
675
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_aa7e98cd2fd599aedefa4c2e6fb659da0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00463">SVFIR.h:463</a></div></div>
|
|
624
676
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ae18227f257c9881541b84ca186680dfd"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ae18227f257c9881541b84ca186680dfd">SVF::SVFUtil::split</a></div><div class="ttdeci">std::vector< std::string > split(const std::string &s, char separator)</div><div class="ttdoc">Split into two substrings around the first occurrence of a separator string.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00218">SVFUtil.h:218</a></div></div>
|
|
677
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_acf42a1921b3af3fbb3d358736518f7b3"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#acf42a1921b3af3fbb3d358736518f7b3">SVF::GrammarBase::kindToStr</a></div><div class="ttdeci">std::string kindToStr(Kind kind) const</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8cpp_source.html#l00103">CFGrammar.cpp:103</a></div></div>
|
|
625
678
|
<div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
626
679
|
<div class="ttc" id="aclassSVF_1_1RetIndSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetIndSVFGEdge.html">SVF::RetIndSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00165">SVFGEdge.h:165</a></div></div>
|
|
627
|
-
<div class="ttc" id="
|
|
680
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_af05b577fbb64082d80ca4cfa2e2bc4f1"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#af05b577fbb64082d80ca4cfa2e2bc4f1">SVF::CFLGraphBuilder::addAttribute</a></div><div class="ttdeci">void addAttribute(CFGrammar::Kind kind, CFGrammar::Attribute attribute)</div><div class="ttdoc">Method to add an attribute to a specific kind.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00037">CFLGraphBuilder.cpp:37</a></div></div>
|
|
681
|
+
<div class="ttc" id="aclassSVF_1_1GrammarBase_html_af418e1033618da75e974a04ee1d7e275"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">SVF::GrammarBase::getAttributedKind</a></div><div class="ttdeci">static Kind getAttributedKind(Attribute attribute, Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFGrammar_8h_source.html#l00265">CFGrammar.h:265</a></div></div>
|
|
628
682
|
<div class="ttc" id="aclassSVF_1_1CFLGraph_html_a58b944d0f2c11868e17223acdb35f82c"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a58b944d0f2c11868e17223acdb35f82c">SVF::CFLGraph::addCFLNode</a></div><div class="ttdeci">virtual void addCFLNode(NodeID id, CFLNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00042">CFLGraph.cpp:42</a></div></div>
|
|
629
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a20299631d2b85507af6d81861736db5e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">SVF::CFLGraphBuilder::Kind</a></div><div class="ttdeci">CFLGrammar::Kind Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
|
|
630
683
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
631
684
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00193">GenericGraph.h:193</a></div></div>
|
|
632
685
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00448">SVFIR.h:448</a></div></div>
|
|
633
686
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5ac8124172b3f5f7fc94e895f6b192b668"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5ac8124172b3f5f7fc94e895f6b192b668">SVF::VFGEdge::RetIndVF</a></div><div class="ttdeci">@ RetIndVF</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00058">VFGEdge.h:58</a></div></div>
|
|
687
|
+
<div class="ttc" id="aclassSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00344">GenericGraph.h:344</a></div></div>
|
|
634
688
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
635
|
-
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a93b41c2f0eca82e6eaf49895b2b13a1e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">SVF::CFLGraphBuilder::kindToLabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kindToLabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
689
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a93b41c2f0eca82e6eaf49895b2b13a1e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a93b41c2f0eca82e6eaf49895b2b13a1e">SVF::CFLGraphBuilder::kindToLabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kindToLabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00060">CFLGraphBuilder.h:60</a></div></div>
|
|
636
690
|
<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>
|
|
637
691
|
<div class="ttc" id="aclassSVF_1_1NormalGepCGEdge_html_ad00a9492e48686cb8a5d593a1a52e872"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#ad00a9492e48686cb8a5d593a1a52e872">SVF::NormalGepCGEdge::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Get location set of the gep edge.</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00309">ConsGEdge.h:309</a></div></div>
|
|
692
|
+
<div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aea046c5f1971069a50100afe7ffed89f"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aea046c5f1971069a50100afe7ffed89f">SVF::CFLGraphBuilder::buildFromText</a></div><div class="ttdeci">CFLGraph * buildFromText(std::string fileName, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdoc">Method to build a CFL graph from a Text file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00142">CFLGraphBuilder.cpp:142</a></div></div>
|
|
638
693
|
<!-- start footer part -->
|
|
639
694
|
<hr class="footer"/><address class="footer"><small>
|
|
640
695
|
Generated by  <a href="http://www.doxygen.org/index.html">
|