svf-tools 1.0.905 → 1.0.907
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/AbstractInterpretation_8cpp.html +217 -0
- package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2093 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +459 -0
- package/SVF-doxygen/html/AbstractState_8cpp.html +84 -0
- package/SVF-doxygen/html/AbstractState_8cpp_source.html +461 -0
- package/SVF-doxygen/html/AbstractState_8h.html +105 -0
- package/SVF-doxygen/html/AbstractState_8h_source.html +891 -0
- package/SVF-doxygen/html/AbstractValue_8h.html +3 -3
- package/SVF-doxygen/html/AbstractValue_8h_source.html +652 -62
- package/SVF-doxygen/html/AddressValue_8h.html +4 -4
- package/SVF-doxygen/html/AddressValue_8h_source.html +180 -177
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +782 -776
- package/SVF-doxygen/html/BufOverflowChecker_8h.html +1 -1
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +19 -19
- package/SVF-doxygen/html/CFLGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
- package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
- package/SVF-doxygen/html/ICFGSimplification_8h.html +2 -2
- package/SVF-doxygen/html/ICFGSimplification_8h_source.html +17 -18
- package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/IntervalValue_8h.html +2 -2
- package/SVF-doxygen/html/IntervalValue_8h_source.html +846 -864
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/RelExeState_8h_source.html +5 -5
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +67 -68
- package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
- package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp.html +84 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +1348 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h.html +100 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +378 -0
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
- package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +1 -1
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +76 -72
- package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/ae_8cpp.html +57 -57
- package/SVF-doxygen/html/ae_8cpp_source.html +462 -466
- package/SVF-doxygen/html/annotated.html +409 -418
- package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4325 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
- package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLNode-members.html +48 -49
- package/SVF-doxygen/html/classSVF_1_1CFLNode.html +25 -25
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
- package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
- package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +349 -459
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +106 -107
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +141 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +3137 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.png +0 -0
- package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
- package/SVF-doxygen/html/classSymblicAbstractionTest.html +400 -404
- package/SVF-doxygen/html/classes.html +326 -336
- package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -10
- package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +2 -4
- package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -8
- package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +2 -4
- package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/files.html +18 -27
- package/SVF-doxygen/html/functions.html +33 -56
- package/SVF-doxygen/html/functions_a.html +29 -42
- package/SVF-doxygen/html/functions_b.html +14 -21
- package/SVF-doxygen/html/functions_c.html +42 -52
- package/SVF-doxygen/html/functions_d.html +7 -4
- package/SVF-doxygen/html/functions_e.html +7 -21
- package/SVF-doxygen/html/functions_enum.html +4 -7
- package/SVF-doxygen/html/functions_eval.html +2 -2
- package/SVF-doxygen/html/functions_eval_c.html +0 -3
- package/SVF-doxygen/html/functions_eval_i.html +2 -3
- package/SVF-doxygen/html/functions_eval_m.html +2 -2
- package/SVF-doxygen/html/functions_eval_s.html +2 -5
- package/SVF-doxygen/html/functions_eval_u.html +4 -1
- package/SVF-doxygen/html/functions_f.html +6 -6
- package/SVF-doxygen/html/functions_func.html +24 -31
- package/SVF-doxygen/html/functions_func_b.html +10 -16
- package/SVF-doxygen/html/functions_func_c.html +30 -39
- package/SVF-doxygen/html/functions_func_d.html +1 -1
- package/SVF-doxygen/html/functions_func_e.html +7 -17
- package/SVF-doxygen/html/functions_func_g.html +61 -115
- package/SVF-doxygen/html/functions_func_h.html +22 -24
- package/SVF-doxygen/html/functions_func_i.html +64 -94
- package/SVF-doxygen/html/functions_func_j.html +4 -6
- package/SVF-doxygen/html/functions_func_l.html +9 -23
- package/SVF-doxygen/html/functions_func_m.html +7 -8
- package/SVF-doxygen/html/functions_func_n.html +8 -13
- package/SVF-doxygen/html/functions_func_o.html +57 -48
- package/SVF-doxygen/html/functions_func_p.html +6 -11
- package/SVF-doxygen/html/functions_func_r.html +4 -4
- package/SVF-doxygen/html/functions_func_s.html +35 -50
- package/SVF-doxygen/html/functions_func_t.html +26 -40
- package/SVF-doxygen/html/functions_func_u.html +6 -5
- package/SVF-doxygen/html/functions_func_v.html +2 -9
- package/SVF-doxygen/html/functions_func_w.html +9 -8
- package/SVF-doxygen/html/functions_func_z.html +1 -2
- package/SVF-doxygen/html/functions_func_~.html +10 -22
- package/SVF-doxygen/html/functions_g.html +61 -118
- package/SVF-doxygen/html/functions_h.html +21 -23
- package/SVF-doxygen/html/functions_i.html +76 -106
- package/SVF-doxygen/html/functions_j.html +4 -6
- package/SVF-doxygen/html/functions_k.html +0 -6
- package/SVF-doxygen/html/functions_l.html +11 -25
- package/SVF-doxygen/html/functions_m.html +8 -9
- package/SVF-doxygen/html/functions_n.html +14 -17
- package/SVF-doxygen/html/functions_o.html +71 -90
- package/SVF-doxygen/html/functions_p.html +31 -30
- package/SVF-doxygen/html/functions_r.html +11 -15
- package/SVF-doxygen/html/functions_rela.html +2 -3
- package/SVF-doxygen/html/functions_rela_b.html +0 -1
- package/SVF-doxygen/html/functions_rela_e.html +0 -1
- package/SVF-doxygen/html/functions_rela_i.html +0 -2
- package/SVF-doxygen/html/functions_rela_l.html +0 -1
- package/SVF-doxygen/html/functions_rela_o.html +0 -18
- package/SVF-doxygen/html/functions_rela_r.html +2 -2
- package/SVF-doxygen/html/functions_rela_s.html +4 -9
- package/SVF-doxygen/html/functions_s.html +45 -70
- package/SVF-doxygen/html/functions_t.html +29 -45
- package/SVF-doxygen/html/functions_type.html +0 -5
- package/SVF-doxygen/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/functions_type_k.html +0 -6
- package/SVF-doxygen/html/functions_type_l.html +4 -3
- package/SVF-doxygen/html/functions_type_t.html +0 -3
- package/SVF-doxygen/html/functions_type_v.html +3 -5
- package/SVF-doxygen/html/functions_u.html +8 -4
- package/SVF-doxygen/html/functions_v.html +11 -20
- package/SVF-doxygen/html/functions_vars.html +33 -56
- package/SVF-doxygen/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/functions_vars_g.html +2 -5
- package/SVF-doxygen/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/functions_vars_t.html +1 -0
- package/SVF-doxygen/html/functions_w.html +11 -10
- package/SVF-doxygen/html/functions_z.html +1 -2
- package/SVF-doxygen/html/functions_~.html +10 -22
- package/SVF-doxygen/html/globals.html +2 -2
- package/SVF-doxygen/html/globals_defs.html +1 -4
- package/SVF-doxygen/html/globals_n.html +2 -5
- package/SVF-doxygen/html/globals_s.html +1 -1
- package/SVF-doxygen/html/globals_vars.html +5 -5
- package/SVF-doxygen/html/globals_z.html +3 -3
- package/SVF-doxygen/html/hierarchy.html +622 -631
- package/SVF-doxygen/html/namespaceSVF.html +449 -458
- package/SVF-doxygen/html/search/all_0.js +155 -161
- package/SVF-doxygen/html/search/all_1.js +502 -503
- package/SVF-doxygen/html/search/all_10.js +325 -326
- package/SVF-doxygen/html/search/all_11.js +227 -227
- package/SVF-doxygen/html/search/all_12.js +563 -574
- package/SVF-doxygen/html/search/all_13.js +206 -208
- package/SVF-doxygen/html/search/all_14.js +74 -73
- package/SVF-doxygen/html/search/all_15.js +175 -176
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -27
- package/SVF-doxygen/html/search/all_1a.js +175 -179
- package/SVF-doxygen/html/search/all_2.js +180 -182
- package/SVF-doxygen/html/search/all_3.js +636 -642
- package/SVF-doxygen/html/search/all_4.js +237 -236
- package/SVF-doxygen/html/search/all_5.js +120 -126
- package/SVF-doxygen/html/search/all_6.js +236 -236
- package/SVF-doxygen/html/search/all_7.js +1040 -1056
- package/SVF-doxygen/html/search/all_8.js +211 -215
- package/SVF-doxygen/html/search/all_9.js +631 -638
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +24 -26
- package/SVF-doxygen/html/search/all_c.js +113 -115
- package/SVF-doxygen/html/search/all_d.js +205 -205
- package/SVF-doxygen/html/search/all_e.js +207 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +29 -28
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +72 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +72 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +7 -8
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +34 -38
- package/SVF-doxygen/html/search/classes_8.js +57 -59
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -4
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +3 -4
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -9
- package/SVF-doxygen/html/search/enums_3.js +2 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -4
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +48 -49
- package/SVF-doxygen/html/search/files_0.js +18 -16
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +51 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +3 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +15 -17
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +57 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +366 -368
- package/SVF-doxygen/html/search/functions_10.js +139 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +294 -299
- package/SVF-doxygen/html/search/functions_13.js +72 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +70 -72
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +175 -179
- package/SVF-doxygen/html/search/functions_2.js +92 -94
- package/SVF-doxygen/html/search/functions_3.js +258 -261
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +54 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +857 -872
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +440 -446
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +22 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +34 -36
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +11 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +18 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -65
- package/SVF-doxygen/html/search/typedefs_11.js +12 -13
- package/SVF-doxygen/html/search/typedefs_12.js +13 -13
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +4 -6
- package/SVF-doxygen/html/search/typedefs_a.js +30 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +171 -177
- package/SVF-doxygen/html/search/variables_1.js +78 -77
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +47 -47
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -143
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +80 -79
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +44 -44
- package/SVF-doxygen/html/search/variables_d.js +58 -58
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
- package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
- package/SVF-doxygen/html/svf-ex_8cpp.html +25 -25
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +26 -26
- package/package.json +1 -1
- package/svf/include/AE/Core/AbstractState.h +749 -0
- package/svf/include/AE/Core/AbstractValue.h +514 -39
- package/svf/include/AE/Core/AddressValue.h +32 -25
- package/svf/include/AE/Core/IntervalValue.h +10 -24
- package/svf/include/AE/Core/RelExeState.h +1 -1
- package/svf/include/AE/Core/RelationSolver.h +9 -9
- package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +27 -26
- package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
- package/svf/include/AE/Svfexe/ICFGSimplification.h +1 -2
- package/svf/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +30 -33
- package/svf/lib/AE/Core/AbstractState.cpp +357 -0
- package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
- package/svf/lib/AE/Core/SVFIR2Relation.cpp +17 -16
- package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +166 -156
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
- package/svf/lib/AE/Svfexe/{SVFIR2ItvExeState.cpp → SVFIR2AbsState.cpp} +211 -247
- package/svf-llvm/tools/AE/ae.cpp +105 -108
- package/svf-llvm/tools/Example/svf-ex.cpp +2 -2
- package/svf/include/AE/Core/ConsExeState.h +0 -453
- package/svf/include/AE/Core/ExeState.h +0 -304
- package/svf/include/AE/Core/IntervalExeState.h +0 -650
- package/svf/include/AE/Core/SingleAbsValue.h +0 -477
- package/svf/include/AE/Core/SymState.h +0 -221
- package/svf/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
- package/svf/lib/AE/Core/ConsExeState.cpp +0 -603
- package/svf/lib/AE/Core/ExeState.cpp +0 -117
- package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
- package/svf/lib/AE/Core/SymState.cpp +0 -37
- package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +0 -772
|
@@ -104,659 +104,659 @@ $(function() {
|
|
|
104
104
|
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
|
|
105
105
|
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span>SVFUtil;</div>
|
|
106
106
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
|
107
|
-
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <a class="code" href="
|
|
108
|
-
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> 
|
|
109
|
-
<div class="line"><a name="
|
|
110
|
-
<div class="line"><a name="l00050"></a><span class="lineno"
|
|
111
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> 
|
|
112
|
-
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> 
|
|
113
|
-
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> 
|
|
114
|
-
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="namespaceSVF.html#
|
|
115
|
-
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
116
|
-
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <
|
|
117
|
-
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> 
|
|
118
|
-
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> 
|
|
119
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> 
|
|
120
|
-
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> 
|
|
121
|
-
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> 
|
|
122
|
-
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
|
|
123
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> 
|
|
124
|
-
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> 
|
|
125
|
-
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> 
|
|
126
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
127
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> 
|
|
128
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
129
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
130
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
131
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
132
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
133
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
|
|
134
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
135
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
|
|
136
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
137
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
138
|
-
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> 
|
|
139
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
140
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
141
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
142
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
143
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
144
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
145
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> 
|
|
146
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
147
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
148
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
149
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
150
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
151
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
152
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
153
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
154
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
155
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
156
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
157
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
158
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
159
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
160
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <
|
|
161
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
162
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <
|
|
163
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
164
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
165
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
|
|
166
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
167
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> 
|
|
168
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
169
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
170
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
171
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
172
|
-
<div class="line"><a name="l00112"></a><span class="lineno"
|
|
173
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
174
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="
|
|
175
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
176
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
177
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <
|
|
178
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
179
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> 
|
|
180
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
181
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
182
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
183
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <
|
|
184
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
185
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
186
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
187
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
188
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#
|
|
189
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <
|
|
190
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
191
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
192
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
193
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
194
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#
|
|
195
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <
|
|
196
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
197
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
198
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
199
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> 
|
|
200
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
201
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="
|
|
202
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
203
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> 
|
|
204
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
205
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
206
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
207
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
208
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
209
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
210
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
211
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
212
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
213
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
214
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
215
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
216
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
217
|
-
<div class="line"><a name="l00157"></a><span class="lineno"
|
|
218
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
219
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
220
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> 
|
|
221
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
222
|
-
<div class="line"><a name="l00162"></a><span class="lineno"
|
|
223
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
224
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
225
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
226
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="
|
|
227
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">double</span>
|
|
228
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="
|
|
229
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <
|
|
230
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
231
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <
|
|
232
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
233
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
234
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
235
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
236
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
237
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
238
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
239
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
240
|
-
<div class="line"><a name="l00180"></a><span class="lineno"
|
|
241
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
242
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
243
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
244
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="
|
|
245
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">double</span>
|
|
246
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="
|
|
247
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <
|
|
248
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a>
|
|
249
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <
|
|
250
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
251
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
252
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
253
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
254
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
255
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
256
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
257
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
258
|
-
<div class="line"><a name="l00198"></a><span class="lineno"
|
|
259
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
260
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <
|
|
261
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
262
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <
|
|
263
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="
|
|
264
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordtype">double</span>
|
|
265
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="
|
|
266
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
267
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
268
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
269
|
-
<div class="line"><a name="l00209"></a><span class="lineno"
|
|
270
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
271
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <
|
|
272
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a>
|
|
273
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <
|
|
274
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="
|
|
275
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">double</span>
|
|
276
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="
|
|
277
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
278
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
279
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
280
|
-
<div class="line"><a name="l00220"></a><span class="lineno"
|
|
281
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
282
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <
|
|
283
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>
|
|
284
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <
|
|
285
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <
|
|
286
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <
|
|
287
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
288
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
289
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="
|
|
290
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  int8_t
|
|
291
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
292
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
293
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
294
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="
|
|
295
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
296
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
297
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> 
|
|
298
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
299
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
300
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
301
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <
|
|
302
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a>
|
|
303
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <
|
|
304
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
305
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
306
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="
|
|
307
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> 
|
|
308
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> 
|
|
309
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> 
|
|
310
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> 
|
|
311
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
|
|
312
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
313
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <
|
|
314
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>
|
|
315
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <
|
|
316
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> 
|
|
317
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> 
|
|
318
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="
|
|
319
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> 
|
|
320
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
321
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
322
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
323
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> 
|
|
324
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> 
|
|
325
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
326
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
327
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> 
|
|
328
|
-
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> 
|
|
329
|
-
<div class="line"><a name="l00269"></a><span class="lineno"
|
|
330
|
-
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> 
|
|
331
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="
|
|
332
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> 
|
|
333
|
-
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> 
|
|
334
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
335
|
-
<div class="line"><a name="l00275"></a><span class="lineno"
|
|
336
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> 
|
|
337
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> 
|
|
338
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> 
|
|
339
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
340
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> 
|
|
341
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> 
|
|
342
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> 
|
|
343
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
344
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
345
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> 
|
|
346
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
347
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
348
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
349
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
350
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
351
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
352
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> 
|
|
353
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
354
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
|
355
|
-
<div class="line"><a name="l00295"></a><span class="lineno"
|
|
356
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
357
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
358
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
359
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
360
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
361
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> 
|
|
362
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
363
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> 
|
|
364
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> 
|
|
365
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &
|
|
107
|
+
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a894f4008a1a7ad002c824ac6832120fe">SVF::SVFIR2ItvExeState::globalNulladdrs</a> = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>();</div>
|
|
108
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
|
|
109
|
+
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a5b242bc20845837dc439f6f585471dfd"> 49</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a5b242bc20845837dc439f6f585471dfd">SVFIR2ItvExeState::getRangeLimitFromType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
110
|
+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
|
111
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>* intType = SVFUtil::dyn_cast<SVFIntegerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
112
|
+
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
|
|
113
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bits = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getByteSize() * 8;</div>
|
|
114
|
+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = 0;</div>
|
|
115
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = 0;</div>
|
|
116
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (bits >= 32)</div>
|
|
117
|
+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div>
|
|
118
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (intType->isSigned())</div>
|
|
119
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div>
|
|
120
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s32_t>::max());</div>
|
|
121
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s32_t>::min());</div>
|
|
122
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div>
|
|
123
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">else</span></div>
|
|
124
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div>
|
|
125
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u32_t>::max());</div>
|
|
126
|
+
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u32_t>::min());</div>
|
|
127
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
|
|
128
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
|
|
129
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 16)</div>
|
|
130
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
|
|
131
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (intType->isSigned())</div>
|
|
132
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div>
|
|
133
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s16_t>::max());</div>
|
|
134
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s16_t>::min());</div>
|
|
135
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
|
|
136
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">else</span></div>
|
|
137
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div>
|
|
138
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u16_t>::max());</div>
|
|
139
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u16_t>::min());</div>
|
|
140
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div>
|
|
141
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
|
142
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 8)</div>
|
|
143
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
|
|
144
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (intType->isSigned())</div>
|
|
145
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
|
|
146
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<int8_t>::max());</div>
|
|
147
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<int8_t>::min());</div>
|
|
148
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
|
149
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">else</span></div>
|
|
150
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div>
|
|
151
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u_int8_t>::max());</div>
|
|
152
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<u_int8_t>::min());</div>
|
|
153
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
|
154
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
|
155
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
156
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
|
|
157
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFOtherType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
158
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
|
159
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// handle other type like float double, set s32_t as the range</span></div>
|
|
160
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s32_t>::max());</div>
|
|
161
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(std::numeric_limits<s32_t>::min());</div>
|
|
162
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
163
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
164
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">else</span></div>
|
|
165
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
|
166
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
167
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// other types, return top interval</span></div>
|
|
168
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
|
|
169
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
|
|
170
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
|
|
171
|
+
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a0cfd69391796e6bb518806003191f9df"> 111</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0cfd69391796e6bb518806003191f9df">SVFIR2ItvExeState::getZExtValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
172
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
|
|
173
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = var-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>();</div>
|
|
174
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFIntegerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
175
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div>
|
|
176
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bits = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getByteSize() * 8;</div>
|
|
177
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_numeral())</div>
|
|
178
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
179
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (bits == 8)</div>
|
|
180
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
|
181
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  int8_t signed_i8_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
182
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(signed_i8_value);</div>
|
|
183
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
184
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
|
185
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 16)</div>
|
|
186
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div>
|
|
187
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> signed_i16_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
188
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">u16_t</a><span class="keyword">></span>(signed_i16_value);</div>
|
|
189
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
190
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div>
|
|
191
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 32)</div>
|
|
192
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div>
|
|
193
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> signed_i32_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
194
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a><span class="keyword">></span>(signed_i32_value);</div>
|
|
195
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
196
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div>
|
|
197
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 64)</div>
|
|
198
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div>
|
|
199
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> signed_i64_value = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
200
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value);</div>
|
|
201
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// we only support i64 at most</span></div>
|
|
202
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
|
|
203
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">else</span></div>
|
|
204
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div>
|
|
205
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support int type other than u8/16/32/64"</span>);</div>
|
|
206
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
|
207
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
|
|
208
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">else</span></div>
|
|
209
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div>
|
|
210
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>(); <span class="comment">// TODO: may have better solution</span></div>
|
|
211
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
|
212
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
|
|
213
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support non-integer type"</span>);</div>
|
|
214
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
|
|
215
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
|
216
|
+
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a731b90b5308ab05867a8c8e44275ed2a"> 156</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a731b90b5308ab05867a8c8e44275ed2a">SVFIR2ItvExeState::getSExtValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
217
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> {</div>
|
|
218
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>();</div>
|
|
219
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div>
|
|
220
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
221
|
+
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a6947db496e01821be2b3f3f21a75c426"> 161</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6947db496e01821be2b3f3f21a75c426">SVFIR2ItvExeState::getFPToSIntValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
222
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> {</div>
|
|
223
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_real())</div>
|
|
224
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
|
225
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
226
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">double</span> float_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>().<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">getRealNumeral</a>();</div>
|
|
227
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">double</span> float_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getRealNumeral();</div>
|
|
228
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
229
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
230
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
231
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(int_lb, int_ub);</div>
|
|
232
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div>
|
|
233
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span></div>
|
|
234
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div>
|
|
235
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> getSExtValue(var);</div>
|
|
236
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div>
|
|
237
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div>
|
|
238
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
|
239
|
+
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a37f110616b1fe4ae921aaa296c88e973"> 179</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a37f110616b1fe4ae921aaa296c88e973">SVFIR2ItvExeState::getFPToUIntValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
240
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div>
|
|
241
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (_es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_real())</div>
|
|
242
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
243
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
244
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">double</span> float_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>().<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">getRealNumeral</a>();</div>
|
|
245
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">double</span> float_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getRealNumeral();</div>
|
|
246
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
247
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
248
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
249
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(int_lb, int_ub);</div>
|
|
250
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
251
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">else</span></div>
|
|
252
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
253
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> getZExtValue(var);</div>
|
|
254
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
255
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div>
|
|
256
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
|
257
|
+
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae376d3db857bf286dcff3704b540376e"> 197</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae376d3db857bf286dcff3704b540376e">SVFIR2ItvExeState::getSIntToFPValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
258
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div>
|
|
259
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// get the sint value of ub and lb</span></div>
|
|
260
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>().<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
261
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
262
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
263
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_lb);</div>
|
|
264
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_ub);</div>
|
|
265
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
266
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
|
|
267
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
268
|
+
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a73db35f4fd5773e77553dd61b3b1574a"> 208</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a73db35f4fd5773e77553dd61b3b1574a">SVFIR2ItvExeState::getUIntToFPValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
269
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div>
|
|
270
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// get the uint value of ub and lb</span></div>
|
|
271
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>().<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
272
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
273
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
274
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_lb);</div>
|
|
275
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_ub);</div>
|
|
276
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
277
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
|
|
278
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
|
279
|
+
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a65070193fa942569611477b68069213c"> 219</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a65070193fa942569611477b68069213c">SVFIR2ItvExeState::getTruncValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
280
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> {</div>
|
|
281
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// get the value of ub and lb</span></div>
|
|
282
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>().<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
283
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
284
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// get dst type</span></div>
|
|
285
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dst_bits = dstType-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>() * 8;</div>
|
|
286
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (dst_bits == 8)</div>
|
|
287
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  {</div>
|
|
288
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
289
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  int8_t s8_lb = <span class="keyword">static_cast<</span>int8_t<span class="keyword">></span>(int_lb);</div>
|
|
290
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  int8_t s8_ub = <span class="keyword">static_cast<</span>int8_t<span class="keyword">></span>(int_ub);</div>
|
|
291
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span> (s8_lb > s8_ub)</div>
|
|
292
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div>
|
|
293
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// return range of s8</span></div>
|
|
294
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
295
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
|
|
296
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s8_lb, s8_ub);</div>
|
|
297
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
298
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst_bits == 16)</div>
|
|
299
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
300
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
301
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> s16_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a><span class="keyword">></span>(int_lb);</div>
|
|
302
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> s16_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a><span class="keyword">></span>(int_ub);</div>
|
|
303
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (s16_lb > s16_ub)</div>
|
|
304
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  {</div>
|
|
305
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">// return range of s16</span></div>
|
|
306
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
307
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div>
|
|
308
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s16_lb, s16_ub);</div>
|
|
309
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
310
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst_bits == 32)</div>
|
|
311
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div>
|
|
312
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// get the signed value of ub and lb</span></div>
|
|
313
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> s32_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">></span>(int_lb);</div>
|
|
314
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> s32_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">></span>(int_ub);</div>
|
|
315
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (s32_lb > s32_ub)</div>
|
|
316
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div>
|
|
317
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// return range of s32</span></div>
|
|
318
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
319
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
|
|
320
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(s32_lb, s32_ub);</div>
|
|
321
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
322
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">else</span></div>
|
|
323
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div>
|
|
324
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support dst int type other than u8/16/32"</span>);</div>
|
|
325
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
326
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> }</div>
|
|
327
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
|
|
328
|
+
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a9ca6b7699ba33452f6b312c2952c289b"> 268</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a9ca6b7699ba33452f6b312c2952c289b">SVFIR2ItvExeState::getFPTruncValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
329
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div>
|
|
330
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// TODO: now we do not really handle fptrunc</span></div>
|
|
331
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> _es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].<a class="code" href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">getInterval</a>();</div>
|
|
332
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div>
|
|
333
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
|
|
334
|
+
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afa0945e4c87ea373e367016ad3cd4b57"> 274</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afa0945e4c87ea373e367016ad3cd4b57">SVFIR2ItvExeState::applySummary</a>(<a class="code" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a>&es)</div>
|
|
335
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> {</div>
|
|
336
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>)</div>
|
|
337
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div>
|
|
338
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  _es._varToAbsVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
339
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
340
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>)</div>
|
|
341
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
342
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  _es._locToAbsVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
343
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div>
|
|
344
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> }</div>
|
|
345
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
346
|
+
<div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1"> 286</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVFIR2ItvExeState::moveToGlobal</a>()</div>
|
|
347
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> {</div>
|
|
348
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: _es._varToAbsVal)</div>
|
|
349
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
350
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.insert(it);</div>
|
|
351
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div>
|
|
352
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: _es._locToAbsVal)</div>
|
|
353
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div>
|
|
354
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>.insert(it);</div>
|
|
355
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
356
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
|
|
357
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  _es._varToAbsVal.clear();</div>
|
|
358
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.erase(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->getBlkPtr());</div>
|
|
359
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  _es._varToAbsVal[<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-><a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
360
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  _es._locToAbsVal.clear();</div>
|
|
361
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> }</div>
|
|
362
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
|
|
363
|
+
<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a6bfcfb033f23873b122dce00f5aa26ea"> 303</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6bfcfb033f23873b122dce00f5aa26ea">SVFIR2ItvExeState::widenAddrs</a>(<a class="code" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a>&lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a>&rhs)</div>
|
|
364
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> {</div>
|
|
365
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>)</div>
|
|
366
366
|
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div>
|
|
367
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <
|
|
368
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
369
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
370
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
371
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
372
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> 
|
|
373
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> 
|
|
374
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
375
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
376
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> 
|
|
377
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> 
|
|
378
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> 
|
|
379
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
380
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> }</div>
|
|
381
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> 
|
|
382
|
-
<div class="line"><a name="l00322"></a><span class="lineno"
|
|
383
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> 
|
|
384
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
|
|
385
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
386
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> 
|
|
387
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="
|
|
388
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
389
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> 
|
|
390
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
391
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
392
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> 
|
|
393
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
|
|
394
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
395
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
396
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> 
|
|
397
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> 
|
|
398
|
-
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> 
|
|
399
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
|
|
400
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> 
|
|
401
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> 
|
|
402
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> 
|
|
403
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> 
|
|
404
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> 
|
|
405
|
-
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> 
|
|
406
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
|
|
407
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> 
|
|
408
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> 
|
|
409
|
-
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> 
|
|
410
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> 
|
|
411
|
-
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> 
|
|
412
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> 
|
|
413
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
|
|
414
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> 
|
|
415
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> 
|
|
416
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> 
|
|
417
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> 
|
|
418
|
-
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> 
|
|
419
|
-
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> 
|
|
420
|
-
<div class="line"><a name="l00360"></a><span class="lineno"
|
|
421
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div>
|
|
422
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> 
|
|
423
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> 
|
|
424
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
425
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
426
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> 
|
|
427
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> 
|
|
428
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> 
|
|
429
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> 
|
|
430
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> 
|
|
431
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> 
|
|
432
|
-
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> 
|
|
433
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> 
|
|
434
|
-
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> 
|
|
435
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> 
|
|
436
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> 
|
|
437
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
438
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
439
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> 
|
|
440
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> 
|
|
441
|
-
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> 
|
|
442
|
-
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> 
|
|
443
|
-
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> 
|
|
444
|
-
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> 
|
|
445
|
-
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> 
|
|
446
|
-
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> 
|
|
447
|
-
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> 
|
|
448
|
-
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> 
|
|
449
|
-
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> 
|
|
450
|
-
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> 
|
|
451
|
-
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> 
|
|
452
|
-
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> 
|
|
453
|
-
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
|
|
454
|
-
<div class="line"><a name="l00394"></a><span class="lineno"
|
|
455
|
-
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> {</div>
|
|
456
|
-
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> 
|
|
457
|
-
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> 
|
|
458
|
-
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> 
|
|
459
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> 
|
|
460
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
461
|
-
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> 
|
|
462
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="
|
|
463
|
-
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> 
|
|
464
|
-
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> 
|
|
465
|
-
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> 
|
|
466
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
467
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
468
|
-
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> 
|
|
469
|
-
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> 
|
|
470
|
-
<div class="line"><a name="
|
|
471
|
-
<div class="line"><a name="
|
|
472
|
-
<div class="line"><a name="
|
|
473
|
-
<div class="line"><a name="
|
|
474
|
-
<div class="line"><a name="
|
|
475
|
-
<div class="line"><a name="l00437"></a><span class="lineno"
|
|
476
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
477
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
478
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="
|
|
479
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
480
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
481
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
482
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
483
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="
|
|
484
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
485
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
|
|
486
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> 
|
|
487
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> 
|
|
488
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
489
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> 
|
|
490
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <
|
|
491
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> 
|
|
492
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> 
|
|
493
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> 
|
|
494
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> 
|
|
495
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
496
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> 
|
|
497
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
498
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
499
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
500
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
501
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
502
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
503
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
504
|
-
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> 
|
|
505
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
506
|
-
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> 
|
|
507
|
-
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> 
|
|
508
|
-
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> 
|
|
509
|
-
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> 
|
|
510
|
-
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> 
|
|
511
|
-
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <
|
|
512
|
-
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> 
|
|
513
|
-
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> 
|
|
514
|
-
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> 
|
|
515
|
-
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> 
|
|
516
|
-
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> 
|
|
517
|
-
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> 
|
|
518
|
-
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> 
|
|
519
|
-
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> 
|
|
520
|
-
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> 
|
|
521
|
-
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> 
|
|
522
|
-
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> 
|
|
523
|
-
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> 
|
|
524
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">else</span
|
|
367
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.find(rhsItem.first);</div>
|
|
368
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.end())</div>
|
|
369
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
370
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">if</span> (rhsItem.second.isAddr())</div>
|
|
371
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div>
|
|
372
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second.getAddrs())</div>
|
|
373
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div>
|
|
374
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> (!lhsIter->second.getAddrs().contains(addr))</div>
|
|
375
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div>
|
|
376
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
|
|
377
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div>
|
|
378
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  lhsIter->second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
|
|
379
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
|
|
380
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div>
|
|
381
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
|
|
382
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
383
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div>
|
|
384
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
|
|
385
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>)</div>
|
|
386
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  {</div>
|
|
387
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>.find(rhsItem.first);</div>
|
|
388
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>.end())</div>
|
|
389
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div>
|
|
390
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">if</span> (rhsItem.second.isAddr())</div>
|
|
391
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  {</div>
|
|
392
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& addr : rhsItem.second.getAddrs())</div>
|
|
393
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div>
|
|
394
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (!lhsIter->second.getAddrs().contains(addr))</div>
|
|
395
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
|
396
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
397
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  i++)</div>
|
|
398
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  {</div>
|
|
399
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  lhsIter->second.join_with(</div>
|
|
400
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  getGepObjAddress(getInternalID(addr), i));</div>
|
|
401
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div>
|
|
402
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  }</div>
|
|
403
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div>
|
|
404
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div>
|
|
405
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div>
|
|
406
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div>
|
|
407
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> }</div>
|
|
408
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
|
|
409
|
+
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a1fe5fae264d56a612b546d80e4d633a4"> 349</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a1fe5fae264d56a612b546d80e4d633a4">SVFIR2ItvExeState::narrowAddrs</a>(<a class="code" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a>&lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a>&rhs)</div>
|
|
410
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> {</div>
|
|
411
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>)</div>
|
|
412
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div>
|
|
413
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.find(rhsItem.first);</div>
|
|
414
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.end())</div>
|
|
415
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div>
|
|
416
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">if</span> (lhsIter->second.isAddr())</div>
|
|
417
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div>
|
|
418
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second.getAddrs())</div>
|
|
419
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div>
|
|
420
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">if</span> (!rhsItem.second.getAddrs().contains(addr))</div>
|
|
421
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  {</div>
|
|
422
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  lhsIter->second = rhsItem.second;</div>
|
|
423
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">break</span>;</div>
|
|
424
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div>
|
|
425
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div>
|
|
426
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
|
427
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div>
|
|
428
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div>
|
|
429
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>)</div>
|
|
430
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
|
431
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>.find(rhsItem.first);</div>
|
|
432
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">_locToAbsVal</a>.end())</div>
|
|
433
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div>
|
|
434
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">if</span> (lhsIter->second.isAddr())</div>
|
|
435
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div>
|
|
436
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& addr : lhsIter->second.getAddrs())</div>
|
|
437
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  {</div>
|
|
438
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (!rhsItem.second.getAddrs().contains(addr))</div>
|
|
439
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div>
|
|
440
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  lhsIter->second = rhsItem.second;</div>
|
|
441
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">break</span>;</div>
|
|
442
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div>
|
|
443
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div>
|
|
444
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div>
|
|
445
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  }</div>
|
|
446
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div>
|
|
447
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> }</div>
|
|
448
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
|
|
449
|
+
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ac2ea42370b5624434bbd60a42c2a81c9"> 389</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ac2ea42370b5624434bbd60a42c2a81c9">SVFIR2ItvExeState::getGepObjAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
|
|
450
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> {</div>
|
|
451
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  assert(!getAddrs(pointer).getAddrs().empty());</div>
|
|
452
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> addrs = getAddrs(pointer);</div>
|
|
453
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> ret = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>();</div>
|
|
454
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
455
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  {</div>
|
|
456
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> baseObj = getInternalID(addr);</div>
|
|
457
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span> (baseObj == 0)</div>
|
|
458
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div>
|
|
459
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  ret.<a class="code" href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">insertAddr</a>(getVirtualMemAddress(0));</div>
|
|
460
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">continue</span>;</div>
|
|
461
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div>
|
|
462
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  assert(SVFUtil::isa<ObjVar>(_svfir->getGNode(baseObj)) && <span class="stringliteral">"Fail to get the base object address!"</span>);</div>
|
|
463
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = _svfir->getGepObjVar(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
464
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  initSVFVar(gepObj);</div>
|
|
465
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  ret.<a class="code" href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">insertAddr</a>(getVirtualMemAddress(gepObj));</div>
|
|
466
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  }</div>
|
|
467
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> ret;</div>
|
|
468
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
|
|
469
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
|
|
470
|
+
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#abd1e309a93a84eb7f3adc0a04827a845"> 432</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#abd1e309a93a84eb7f3adc0a04827a845">SVFIR2ItvExeState::getByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
471
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> {</div>
|
|
472
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
473
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">accumulateConstantByteOffset</a>());</div>
|
|
474
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0); <span class="comment">// Initialize the result interval 'res' to 0.</span></div>
|
|
475
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="comment">// Loop through the offsetVarAndGepTypePairVec in reverse order.</span></div>
|
|
476
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
477
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  {</div>
|
|
478
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* idxOperandVar =</div>
|
|
479
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first;</div>
|
|
480
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* idxOperandType =</div>
|
|
481
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].second;</div>
|
|
482
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// calculating Array/Ptr by elemByteSize * indexOperand</span></div>
|
|
483
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFArrayType>(idxOperandType) || SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
484
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  {</div>
|
|
485
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemByteSize = 1;</div>
|
|
486
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrOperandType = SVFUtil::dyn_cast<SVFArrayType>(idxOperandType))</div>
|
|
487
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  elemByteSize = arrOperandType->getTypeOfElement()->getByteSize();</div>
|
|
488
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
489
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  elemByteSize = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
490
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">else</span></div>
|
|
491
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"idxOperandType must be ArrType or PtrType"</span>);</div>
|
|
492
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast<SVFConstantInt>(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
|
|
493
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
494
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemByteSize >= op->getSExtValue() ?op->getSExtValue() * elemByteSize</div>
|
|
495
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
496
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, lb);</div>
|
|
497
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
498
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">else</span></div>
|
|
499
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div>
|
|
500
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir->getValueNode(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>());</div>
|
|
501
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = _es[idx].getInterval();</div>
|
|
502
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">isBottom</a>())</div>
|
|
503
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
504
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">else</span></div>
|
|
505
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div>
|
|
506
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// if lb or ub is negative number, set 0.</span></div>
|
|
507
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// if lb or ub is positive number, guarantee lb/ub * elemByteSize <= MaxFieldLimit</span></div>
|
|
508
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
509
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
510
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
511
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
512
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
513
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>()) ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
514
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
515
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div>
|
|
516
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div>
|
|
517
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  }</div>
|
|
518
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// Process struct subtype by calculating the byte offset from beginning to the field of struct</span></div>
|
|
519
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structOperandType = SVFUtil::dyn_cast<SVFStructType>(idxOperandType))</div>
|
|
520
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div>
|
|
521
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">getStructFieldOffset</a>(</div>
|
|
522
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  idxOperandVar, structOperandType));</div>
|
|
523
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div>
|
|
524
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">else</span></div>
|
|
525
525
|
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div>
|
|
526
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> 
|
|
527
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> 
|
|
528
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> 
|
|
529
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
530
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
531
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> 
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="
|
|
534
|
-
<div class="line"><a name="
|
|
535
|
-
<div class="line"><a name="
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="l00507"></a><span class="lineno"
|
|
538
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> {</div>
|
|
539
|
-
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> 
|
|
540
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> 
|
|
541
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> 
|
|
542
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
543
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
544
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <
|
|
545
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> 
|
|
546
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <
|
|
547
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> 
|
|
548
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="
|
|
549
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> 
|
|
550
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <
|
|
551
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> 
|
|
552
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
553
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> 
|
|
554
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> 
|
|
555
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> 
|
|
556
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> 
|
|
557
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
558
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> 
|
|
559
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
560
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> 
|
|
561
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> 
|
|
562
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
563
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
564
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> 
|
|
565
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> 
|
|
566
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> 
|
|
567
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> 
|
|
568
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> 
|
|
569
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
|
|
570
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> 
|
|
571
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> 
|
|
572
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
573
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> 
|
|
574
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> 
|
|
575
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> 
|
|
576
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> 
|
|
577
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> 
|
|
578
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> 
|
|
579
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
580
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> 
|
|
581
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> 
|
|
582
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> 
|
|
583
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
584
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> 
|
|
585
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> 
|
|
586
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> 
|
|
587
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
588
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> 
|
|
589
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> 
|
|
590
|
-
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> 
|
|
591
|
-
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> 
|
|
592
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> 
|
|
593
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> 
|
|
594
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> 
|
|
595
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> 
|
|
596
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  res =
|
|
526
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"gep type pair only support arr/ptr/struct"</span>);</div>
|
|
527
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div>
|
|
528
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  }</div>
|
|
529
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte offset as an IntervalValue.</span></div>
|
|
530
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> }</div>
|
|
531
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  </div>
|
|
532
|
+
<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a2a4c1d7f48bf4ace3f6ee17bffa9515c"> 502</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2a4c1d7f48bf4ace3f6ee17bffa9515c">SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
533
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> {</div>
|
|
534
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
535
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">accumulateConstantOffset</a>());</div>
|
|
536
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
537
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
538
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div>
|
|
539
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">AccessPath::IdxOperandPair</a> IdxVarAndType =</div>
|
|
540
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i];</div>
|
|
541
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value =</div>
|
|
542
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first->getValue();</div>
|
|
543
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = IdxVarAndType.second;</div>
|
|
544
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="comment">// idxLb/Ub is the flattened offset generated by the current OffsetVarAndGepTypePair</span></div>
|
|
545
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxLb;</div>
|
|
546
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxUb;</div>
|
|
547
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="comment">// get lb and ub of the index value</span></div>
|
|
548
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* constInt = SVFUtil::dyn_cast<SVFConstantInt>(value))</div>
|
|
549
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  idxLb = idxUb = constInt->getSExtValue();</div>
|
|
550
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">else</span></div>
|
|
551
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  {</div>
|
|
552
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxItv = _es[_svfir->getValueNode(value)].getInterval();</div>
|
|
553
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">if</span> (idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">isBottom</a>())</div>
|
|
554
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  idxLb = idxUb = 0;</div>
|
|
555
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">else</span></div>
|
|
556
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  {</div>
|
|
557
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  idxLb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
558
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  idxUb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
559
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div>
|
|
560
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</div>
|
|
561
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="comment">// for pointer type, flattened index = elemNum * idx</span></div>
|
|
562
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
563
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div>
|
|
564
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemNum = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>());</div>
|
|
565
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  idxLb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxLb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxLb * elemNum;</div>
|
|
566
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  idxUb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxUb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxUb * elemNum;</div>
|
|
567
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  }</div>
|
|
568
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="comment">// for array or struct, get flattened index from SymbolTable Info</span></div>
|
|
569
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">else</span></div>
|
|
570
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  {</div>
|
|
571
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">Options::ModelArrays</a>())</div>
|
|
572
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  {</div>
|
|
573
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
|
|
574
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  -><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
575
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  -><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
576
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">if</span> (so.empty() || idxUb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() || idxLb < 0)</div>
|
|
577
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div>
|
|
578
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  idxLb = idxUb = 0;</div>
|
|
579
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
|
|
580
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">else</span></div>
|
|
581
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  {</div>
|
|
582
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  idxLb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
583
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxLb);</div>
|
|
584
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  idxUb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
585
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxUb);</div>
|
|
586
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  }</div>
|
|
588
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">else</span></div>
|
|
589
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  idxLb = idxUb = 0;</div>
|
|
590
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div>
|
|
591
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(idxLb, idxUb);</div>
|
|
592
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
|
|
593
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  res.<a class="code" href="structSVF_1_1AbstractValue.html#a078ac137e60c5a2585a649f7ec40a8a8">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()));</div>
|
|
594
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (res.<a class="code" href="structSVF_1_1AbstractValue.html#a8b1af972fa8a4e40347990d179ec1c52">isBottom</a>())</div>
|
|
595
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div>
|
|
596
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
597
597
|
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
598
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
599
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
600
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
601
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
602
|
-
<div class="line"><a name="
|
|
603
|
-
<div class="line"><a name="
|
|
604
|
-
<div class="line"><a name="
|
|
605
|
-
<div class="line"><a name="
|
|
606
|
-
<div class="line"><a name="
|
|
607
|
-
<div class="line"><a name="l00582"></a><span class="lineno"
|
|
608
|
-
<div class="line"><a name="
|
|
609
|
-
<div class="line"><a name="
|
|
610
|
-
<div class="line"><a name="
|
|
611
|
-
<div class="line"><a name="
|
|
612
|
-
<div class="line"><a name="
|
|
613
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
614
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
615
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="
|
|
616
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> 
|
|
617
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> 
|
|
618
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="
|
|
619
|
-
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> 
|
|
620
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
621
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="
|
|
622
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> 
|
|
623
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
624
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (
|
|
625
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="
|
|
626
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">else</span
|
|
627
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="
|
|
628
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> 
|
|
629
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> 
|
|
630
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> 
|
|
631
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
632
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
633
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
634
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> 
|
|
635
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> 
|
|
636
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> 
|
|
637
|
-
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> 
|
|
638
|
-
<div class="line"><a name="l00614"></a><span class="lineno"
|
|
639
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
640
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <
|
|
641
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <
|
|
642
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <
|
|
643
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
644
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
645
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
646
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> 
|
|
647
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> 
|
|
648
|
-
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> 
|
|
649
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> 
|
|
650
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> 
|
|
651
|
-
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> 
|
|
652
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> 
|
|
653
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> 
|
|
654
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> 
|
|
655
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> 
|
|
656
|
-
<div class="line"><a name="l00632"></a><span class="lineno"
|
|
657
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> 
|
|
658
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> 
|
|
659
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> 
|
|
660
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> 
|
|
661
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> 
|
|
662
|
-
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> 
|
|
663
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> 
|
|
664
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> 
|
|
665
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> 
|
|
666
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> 
|
|
667
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> 
|
|
668
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  </div>
|
|
669
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> 
|
|
670
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> 
|
|
671
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> 
|
|
672
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> 
|
|
673
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> 
|
|
674
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> 
|
|
675
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> 
|
|
676
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> 
|
|
677
|
-
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> 
|
|
678
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> 
|
|
679
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> 
|
|
680
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> 
|
|
681
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> 
|
|
682
|
-
<div class="line"><a name="l00658"></a><span class="lineno"
|
|
683
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
684
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
685
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <
|
|
686
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <
|
|
687
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">if</span> (
|
|
688
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> 
|
|
689
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
690
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
691
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <a class="code" href="
|
|
692
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> 
|
|
693
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">
|
|
694
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> 
|
|
695
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> 
|
|
696
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> 
|
|
697
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> 
|
|
698
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> 
|
|
699
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> 
|
|
700
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> 
|
|
701
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> 
|
|
702
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> 
|
|
703
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> 
|
|
704
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> 
|
|
705
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> 
|
|
706
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> 
|
|
707
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
708
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> 
|
|
709
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> 
|
|
710
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> 
|
|
711
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> 
|
|
712
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
713
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> 
|
|
714
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> 
|
|
715
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> 
|
|
716
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> 
|
|
717
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
718
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> 
|
|
719
|
-
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> 
|
|
720
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
721
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
722
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> 
|
|
723
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> 
|
|
724
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> 
|
|
725
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
726
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
727
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
728
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
729
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
730
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
731
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
732
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> 
|
|
733
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
734
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
735
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
736
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> 
|
|
737
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> 
|
|
738
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> 
|
|
739
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> 
|
|
740
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
741
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
742
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
743
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
744
|
-
<div class="line"><a name="l00720"></a><span class="lineno"
|
|
745
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> 
|
|
746
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
747
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <
|
|
748
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
749
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> 
|
|
750
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> 
|
|
751
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <
|
|
752
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="
|
|
753
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="
|
|
754
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> 
|
|
755
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> 
|
|
756
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
757
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
758
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
759
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  resVal = (lhs == rhs);</div>
|
|
598
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">return</span> res;</div>
|
|
599
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> }</div>
|
|
600
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
|
|
601
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
|
|
602
|
+
<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 577</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
603
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> {</div>
|
|
604
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  </div>
|
|
605
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
606
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  {</div>
|
|
607
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-><a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
|
|
608
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
609
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  {</div>
|
|
610
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast<SVFConstantInt>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
611
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
612
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> numeral = consInt->getSExtValue();</div>
|
|
613
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
|
|
614
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div>
|
|
615
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast<SVFConstantFP>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
616
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
617
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFConstantNullPtr>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
618
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
619
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFGlobalValue>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
620
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  {</div>
|
|
621
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
622
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div>
|
|
623
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  </div>
|
|
624
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
625
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
626
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">else</span></div>
|
|
627
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
628
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div>
|
|
629
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">else</span></div>
|
|
630
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
631
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div>
|
|
632
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">else</span></div>
|
|
633
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
634
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> }</div>
|
|
635
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
|
|
636
|
+
<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 612</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
637
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> {</div>
|
|
638
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">if</span> (inVarToValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
|
|
639
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
|
|
640
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div>
|
|
641
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
642
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast<ObjVar>(svfVar))</div>
|
|
643
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  {</div>
|
|
644
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  initObjVar(objVar, varId);</div>
|
|
645
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">return</span>;</div>
|
|
646
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
|
|
647
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">else</span></div>
|
|
648
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  {</div>
|
|
649
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not an obj var?"</span>);</div>
|
|
650
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  }</div>
|
|
651
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> }</div>
|
|
652
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  </div>
|
|
653
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  </div>
|
|
654
|
+
<div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 630</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
|
|
655
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> {</div>
|
|
656
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  initSVFVar(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
657
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">if</span> (inVarToValTable(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
658
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  {</div>
|
|
659
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="comment">// if addr RHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
660
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">if</span> (addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">getKind</a>() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
661
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  {</div>
|
|
662
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()].meet_with(getRangeLimitFromType(addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()));</div>
|
|
663
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div>
|
|
664
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] =</div>
|
|
665
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
666
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  </div>
|
|
667
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  }</div>
|
|
668
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
669
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  {</div>
|
|
670
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] =</div>
|
|
671
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <a class="code" href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SparseAbstractState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
672
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div>
|
|
673
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">else</span></div>
|
|
674
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  {</div>
|
|
675
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
676
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  }</div>
|
|
677
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> }</div>
|
|
678
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  </div>
|
|
679
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  </div>
|
|
680
|
+
<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 656</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
|
|
681
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> {</div>
|
|
682
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
683
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
684
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
685
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">if</span> (!inVarToValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
686
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">if</span> (!inVarToValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
687
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">if</span> (inVarToValTable(op0) && inVarToValTable(op1))</div>
|
|
688
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  {</div>
|
|
689
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = _es[op0], &rhs = _es[op1];</div>
|
|
690
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> resVal;</div>
|
|
691
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
692
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div>
|
|
693
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
694
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
695
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  resVal = (lhs + rhs);</div>
|
|
696
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">break</span>;</div>
|
|
697
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
698
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
699
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  resVal = (lhs - rhs);</div>
|
|
700
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">break</span>;</div>
|
|
701
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
702
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
703
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  resVal = (lhs * rhs);</div>
|
|
704
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">break</span>;</div>
|
|
705
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
706
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
707
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
708
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  resVal = (lhs / rhs);</div>
|
|
709
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">break</span>;</div>
|
|
710
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
711
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
712
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
713
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  resVal = (lhs % rhs);</div>
|
|
714
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">break</span>;</div>
|
|
715
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
716
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  resVal = (lhs ^ rhs);</div>
|
|
717
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">break</span>;</div>
|
|
718
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
719
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  resVal = (lhs & rhs);</div>
|
|
720
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">break</span>;</div>
|
|
721
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
722
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  resVal = (lhs | rhs);</div>
|
|
723
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">break</span>;</div>
|
|
724
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
725
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  resVal = (lhs >> rhs);</div>
|
|
726
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">break</span>;</div>
|
|
727
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
728
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  resVal = (lhs << rhs);</div>
|
|
729
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">break</span>;</div>
|
|
730
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
731
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  resVal = (lhs >> rhs);</div>
|
|
732
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">break</span>;</div>
|
|
733
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">default</span>:</div>
|
|
734
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div>
|
|
735
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
736
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div>
|
|
737
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  }</div>
|
|
738
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  _es[res] = resVal;</div>
|
|
739
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div>
|
|
740
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> }</div>
|
|
741
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  </div>
|
|
742
|
+
<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 718</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
|
|
743
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> {</div>
|
|
744
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
745
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
746
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
747
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">if</span> (inVarToValTable(op0) && inVarToValTable(op1))</div>
|
|
748
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  {</div>
|
|
749
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> resVal;</div>
|
|
750
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = _es[op0], &rhs = _es[op1];</div>
|
|
751
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="comment">//AbstractValue</span></div>
|
|
752
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
753
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
754
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  {</div>
|
|
755
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
756
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
757
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
758
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  resVal = (lhs == rhs);</div>
|
|
759
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="comment">// resVal = (lhs.getInterval() == rhs.getInterval());</span></div>
|
|
760
760
|
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">break</span>;</div>
|
|
761
761
|
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
762
762
|
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
@@ -803,8 +803,8 @@ $(function() {
|
|
|
803
803
|
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) && inVarToAddrsTable(op1))</div>
|
|
804
804
|
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
805
805
|
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
806
|
-
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="
|
|
807
|
-
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() && !rhs.empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
806
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = getAddrs(op0), &rhs = getAddrs(op1);</div>
|
|
807
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  assert(!lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() && !rhs.getAddrs().empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
808
808
|
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
809
809
|
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
810
810
|
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  {</div>
|
|
@@ -812,13 +812,13 @@ $(function() {
|
|
|
812
812
|
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
813
813
|
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
814
814
|
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div>
|
|
815
|
-
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
815
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
816
816
|
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div>
|
|
817
|
-
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="
|
|
817
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">equals</a>(rhs));</div>
|
|
818
818
|
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  }</div>
|
|
819
819
|
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordflow">else</span></div>
|
|
820
820
|
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div>
|
|
821
|
-
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
|
|
821
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs.getAddrs()))</div>
|
|
822
822
|
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  {</div>
|
|
823
823
|
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
824
824
|
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div>
|
|
@@ -833,13 +833,13 @@ $(function() {
|
|
|
833
833
|
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
834
834
|
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
835
835
|
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div>
|
|
836
|
-
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
836
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
837
837
|
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  {</div>
|
|
838
|
-
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="
|
|
838
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">equals</a>(rhs));</div>
|
|
839
839
|
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  }</div>
|
|
840
840
|
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">else</span></div>
|
|
841
841
|
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  {</div>
|
|
842
|
-
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
|
|
842
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs.getAddrs()))</div>
|
|
843
843
|
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div>
|
|
844
844
|
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
845
845
|
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  }</div>
|
|
@@ -855,9 +855,9 @@ $(function() {
|
|
|
855
855
|
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
856
856
|
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
857
857
|
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div>
|
|
858
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
858
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
859
859
|
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div>
|
|
860
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() > *rhs.begin());</div>
|
|
860
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() > *rhs.getAddrs().begin());</div>
|
|
861
861
|
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div>
|
|
862
862
|
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">else</span></div>
|
|
863
863
|
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
@@ -870,9 +870,9 @@ $(function() {
|
|
|
870
870
|
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
871
871
|
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
872
872
|
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  {</div>
|
|
873
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
873
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
874
874
|
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div>
|
|
875
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() >= *rhs.begin());</div>
|
|
875
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() >= *rhs.getAddrs().begin());</div>
|
|
876
876
|
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div>
|
|
877
877
|
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span></div>
|
|
878
878
|
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  {</div>
|
|
@@ -885,9 +885,9 @@ $(function() {
|
|
|
885
885
|
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
886
886
|
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
887
887
|
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  {</div>
|
|
888
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
888
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
889
889
|
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  {</div>
|
|
890
|
-
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() < *rhs.begin());</div>
|
|
890
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() < *rhs.getAddrs().begin());</div>
|
|
891
891
|
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
892
892
|
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keywordflow">else</span></div>
|
|
893
893
|
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  {</div>
|
|
@@ -900,9 +900,9 @@ $(function() {
|
|
|
900
900
|
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
901
901
|
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
902
902
|
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  {</div>
|
|
903
|
-
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.size() == 1)</div>
|
|
903
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
904
904
|
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  {</div>
|
|
905
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() <= *rhs.begin());</div>
|
|
905
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() <= *rhs.getAddrs().begin());</div>
|
|
906
906
|
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  }</div>
|
|
907
907
|
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">else</span></div>
|
|
908
908
|
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  {</div>
|
|
@@ -931,323 +931,295 @@ $(function() {
|
|
|
931
931
|
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
932
932
|
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
933
933
|
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  {</div>
|
|
934
|
-
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <a class="code" href="
|
|
935
|
-
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
936
|
-
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="
|
|
937
|
-
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <
|
|
938
|
-
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="
|
|
939
|
-
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> 
|
|
940
|
-
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> 
|
|
941
|
-
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <
|
|
942
|
-
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="
|
|
943
|
-
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> 
|
|
944
|
-
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> 
|
|
945
|
-
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> 
|
|
946
|
-
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> 
|
|
947
|
-
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> 
|
|
948
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> 
|
|
949
|
-
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> 
|
|
950
|
-
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> 
|
|
951
|
-
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> 
|
|
952
|
-
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> 
|
|
953
|
-
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> 
|
|
954
|
-
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> 
|
|
955
|
-
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> 
|
|
956
|
-
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> 
|
|
957
|
-
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> 
|
|
958
|
-
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> 
|
|
959
|
-
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> 
|
|
960
|
-
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> 
|
|
961
|
-
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> 
|
|
962
|
-
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> 
|
|
963
|
-
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">
|
|
934
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &addrs = getAddrs(rhs);</div>
|
|
935
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  assert(!addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
936
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> rhsVal(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>); <span class="comment">// interval::bottom Address::bottom</span></div>
|
|
937
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="comment">// AbstractValue absRhs</span></div>
|
|
938
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
939
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  {</div>
|
|
940
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="comment">// inLocToAbsVal()</span></div>
|
|
941
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="comment">// absRhs.join_with</span></div>
|
|
942
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="comment">// es.load()</span></div>
|
|
943
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
|
|
944
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">if</span> (inLocToValTable(objId) || inLocToAddrsTable(objId))</div>
|
|
945
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  {</div>
|
|
946
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(_es.load(addr));</div>
|
|
947
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  }</div>
|
|
948
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  }</div>
|
|
949
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordflow">if</span> (!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
950
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  _es[lhs] = rhsVal;</div>
|
|
951
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
|
|
952
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> }</div>
|
|
953
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  </div>
|
|
954
|
+
<div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 930</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
|
|
955
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> {</div>
|
|
956
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
957
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
958
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
|
|
959
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  {</div>
|
|
960
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="comment">//es.store()</span></div>
|
|
961
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  assert(!getAddrs(lhs).getAddrs().empty());</div>
|
|
962
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &addrs = _es[lhs];</div>
|
|
963
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
964
964
|
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div>
|
|
965
|
-
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> 
|
|
965
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  _es.store(addr, _es[rhs]);</div>
|
|
966
966
|
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div>
|
|
967
|
-
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> 
|
|
968
|
-
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> 
|
|
969
|
-
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> 
|
|
970
|
-
<div class="line"><a name="l00946"></a><span class="lineno"
|
|
971
|
-
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> 
|
|
972
|
-
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> 
|
|
973
|
-
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> 
|
|
974
|
-
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> 
|
|
975
|
-
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> 
|
|
976
|
-
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> 
|
|
977
|
-
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> 
|
|
978
|
-
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> 
|
|
979
|
-
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> 
|
|
980
|
-
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> 
|
|
981
|
-
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> 
|
|
982
|
-
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> 
|
|
983
|
-
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> 
|
|
984
|
-
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> 
|
|
985
|
-
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <
|
|
986
|
-
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> 
|
|
987
|
-
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> 
|
|
988
|
-
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> 
|
|
989
|
-
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> 
|
|
990
|
-
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> 
|
|
991
|
-
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> 
|
|
992
|
-
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> 
|
|
993
|
-
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> 
|
|
994
|
-
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> 
|
|
995
|
-
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> 
|
|
996
|
-
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> 
|
|
997
|
-
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> 
|
|
998
|
-
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> 
|
|
999
|
-
<div class="line"><a name="l00975"></a><span class="lineno"
|
|
1000
|
-
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> {</div>
|
|
1001
|
-
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> 
|
|
1002
|
-
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> 
|
|
1003
|
-
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> 
|
|
1004
|
-
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> 
|
|
1005
|
-
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> 
|
|
1006
|
-
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> 
|
|
1007
|
-
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> 
|
|
1008
|
-
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> 
|
|
1009
|
-
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> 
|
|
1010
|
-
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> 
|
|
1011
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
967
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  </div>
|
|
968
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs) || inVarToAddrsTable(rhs))</div>
|
|
969
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  {</div>
|
|
970
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  assert(!getAddrs(lhs).getAddrs().empty());</div>
|
|
971
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: _es[lhs].getAddrs())</div>
|
|
972
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  {</div>
|
|
973
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  _es.store(addr, _es[rhs]);</div>
|
|
974
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  }</div>
|
|
975
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  }</div>
|
|
976
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  }</div>
|
|
977
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> }</div>
|
|
978
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  </div>
|
|
979
|
+
<div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 955</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
|
|
980
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> {</div>
|
|
981
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
982
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
983
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
984
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  {</div>
|
|
985
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
986
|
+
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  }</div>
|
|
987
|
+
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordflow">else</span></div>
|
|
988
|
+
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  {</div>
|
|
989
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
990
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div>
|
|
991
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">CopyStmt::COPYVAL</a>)</div>
|
|
992
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div>
|
|
993
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  _es[lhs] = _es[rhs];</div>
|
|
994
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
|
|
995
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">CopyStmt::ZEXT</a>)</div>
|
|
996
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  {</div>
|
|
997
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  _es[lhs] = getZExtValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
998
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div>
|
|
999
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">CopyStmt::SEXT</a>)</div>
|
|
1000
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  {</div>
|
|
1001
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  _es[lhs] = getSExtValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1002
|
+
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  }</div>
|
|
1003
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">CopyStmt::FPTOSI</a>)</div>
|
|
1004
|
+
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div>
|
|
1005
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  _es[lhs] = getFPToSIntValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1006
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div>
|
|
1007
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c">CopyStmt::FPTOUI</a>)</div>
|
|
1008
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  {</div>
|
|
1009
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  _es[lhs] = getFPToUIntValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1010
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div>
|
|
1011
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">CopyStmt::SITOFP</a>)</div>
|
|
1012
1012
|
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  {</div>
|
|
1013
|
-
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  _es[lhs] =
|
|
1013
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  _es[lhs] = getSIntToFPValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1014
1014
|
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div>
|
|
1015
|
-
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1015
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">CopyStmt::UITOFP</a>)</div>
|
|
1016
1016
|
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  {</div>
|
|
1017
|
-
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  _es[lhs] =
|
|
1017
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  _es[lhs] = getUIntToFPValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
1018
1018
|
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  }</div>
|
|
1019
|
-
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1019
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">CopyStmt::TRUNC</a>)</div>
|
|
1020
1020
|
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  {</div>
|
|
1021
|
-
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  _es[lhs] =
|
|
1021
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  _es[lhs] = getTruncValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
1022
1022
|
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div>
|
|
1023
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1023
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">CopyStmt::FPTRUNC</a>)</div>
|
|
1024
1024
|
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  {</div>
|
|
1025
|
-
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  _es[lhs] =
|
|
1025
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  _es[lhs] = getFPTruncValue(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
1026
1026
|
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div>
|
|
1027
|
-
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1027
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83">CopyStmt::INTTOPTR</a>)</div>
|
|
1028
1028
|
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  {</div>
|
|
1029
|
-
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  _es
|
|
1029
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  _es.getAddrs(lhs).getAddrs().insert(getVirtualMemAddress(0)); <span class="comment">//insert nullptr</span></div>
|
|
1030
1030
|
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div>
|
|
1031
|
-
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1031
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ae746463dbec33f7d026b1a43e9ea4b87">CopyStmt::PTRTOINT</a>)</div>
|
|
1032
1032
|
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  {</div>
|
|
1033
|
-
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  _es[lhs] =
|
|
1033
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1034
1034
|
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  }</div>
|
|
1035
|
-
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1035
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e">CopyStmt::BITCAST</a>)</div>
|
|
1036
1036
|
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  {</div>
|
|
1037
|
-
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> 
|
|
1038
|
-
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> 
|
|
1039
|
-
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> 
|
|
1040
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> 
|
|
1041
|
-
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> 
|
|
1042
|
-
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> 
|
|
1043
|
-
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> 
|
|
1044
|
-
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> 
|
|
1045
|
-
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> 
|
|
1046
|
-
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> 
|
|
1047
|
-
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> 
|
|
1048
|
-
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> 
|
|
1049
|
-
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> 
|
|
1037
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">if</span> (_es[rhs].isAddr())</div>
|
|
1038
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  {</div>
|
|
1039
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  _es[lhs] = _es[rhs];</div>
|
|
1040
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  }</div>
|
|
1041
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">else</span></div>
|
|
1042
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  {</div>
|
|
1043
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="comment">// do nothing</span></div>
|
|
1044
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  }</div>
|
|
1045
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  }</div>
|
|
1046
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="keywordflow">else</span></div>
|
|
1047
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  {</div>
|
|
1048
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined copy kind"</span>);</div>
|
|
1049
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  abort();</div>
|
|
1050
1050
|
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  }</div>
|
|
1051
|
-
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> 
|
|
1052
|
-
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> 
|
|
1053
|
-
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> 
|
|
1054
|
-
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> 
|
|
1055
|
-
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> 
|
|
1056
|
-
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> 
|
|
1057
|
-
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> 
|
|
1058
|
-
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> 
|
|
1059
|
-
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> 
|
|
1060
|
-
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> 
|
|
1061
|
-
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> 
|
|
1062
|
-
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> 
|
|
1063
|
-
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> 
|
|
1064
|
-
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> 
|
|
1065
|
-
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> 
|
|
1066
|
-
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> 
|
|
1067
|
-
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> 
|
|
1068
|
-
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  </div>
|
|
1069
|
-
<div class="line"><a name="l01045"></a><span class="lineno"
|
|
1070
|
-
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> 
|
|
1071
|
-
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> 
|
|
1072
|
-
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> 
|
|
1073
|
-
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> 
|
|
1074
|
-
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> 
|
|
1075
|
-
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> 
|
|
1076
|
-
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> 
|
|
1077
|
-
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> 
|
|
1078
|
-
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> 
|
|
1079
|
-
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">
|
|
1080
|
-
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> 
|
|
1081
|
-
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> 
|
|
1082
|
-
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> 
|
|
1083
|
-
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> 
|
|
1084
|
-
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> 
|
|
1085
|
-
<div class="line"><a name="l01061"></a><span class="lineno"
|
|
1086
|
-
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> 
|
|
1087
|
-
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> 
|
|
1088
|
-
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> 
|
|
1089
|
-
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> 
|
|
1090
|
-
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> 
|
|
1091
|
-
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> 
|
|
1092
|
-
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> 
|
|
1093
|
-
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> 
|
|
1094
|
-
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> 
|
|
1095
|
-
<div class="line"><a name="l01071"></a><span class="lineno"
|
|
1096
|
-
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> 
|
|
1097
|
-
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> 
|
|
1098
|
-
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> 
|
|
1099
|
-
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> 
|
|
1100
|
-
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> 
|
|
1101
|
-
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> 
|
|
1102
|
-
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> 
|
|
1103
|
-
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> 
|
|
1104
|
-
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> 
|
|
1105
|
-
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> 
|
|
1106
|
-
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> 
|
|
1107
|
-
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> 
|
|
1108
|
-
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> 
|
|
1109
|
-
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> 
|
|
1110
|
-
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> 
|
|
1111
|
-
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> 
|
|
1112
|
-
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> 
|
|
1113
|
-
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> 
|
|
1114
|
-
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> 
|
|
1115
|
-
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> 
|
|
1116
|
-
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> 
|
|
1117
|
-
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> 
|
|
1118
|
-
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> 
|
|
1119
|
-
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> 
|
|
1120
|
-
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> 
|
|
1121
|
-
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> 
|
|
1122
|
-
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> 
|
|
1123
|
-
<div class="line"><a name="l01099"></a><span class="lineno"
|
|
1124
|
-
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> 
|
|
1125
|
-
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> 
|
|
1126
|
-
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <
|
|
1127
|
-
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> 
|
|
1128
|
-
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> 
|
|
1129
|
-
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> 
|
|
1130
|
-
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> 
|
|
1131
|
-
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> 
|
|
1132
|
-
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> 
|
|
1133
|
-
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> 
|
|
1134
|
-
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> 
|
|
1135
|
-
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> 
|
|
1136
|
-
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> 
|
|
1137
|
-
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> 
|
|
1138
|
-
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> 
|
|
1139
|
-
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> 
|
|
1140
|
-
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> 
|
|
1141
|
-
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> 
|
|
1142
|
-
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> 
|
|
1143
|
-
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> 
|
|
1144
|
-
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <
|
|
1145
|
-
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> 
|
|
1146
|
-
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> 
|
|
1147
|
-
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  _es[
|
|
1051
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div>
|
|
1052
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1053
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  {</div>
|
|
1054
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  assert(!getAddrs(rhs).getAddrs().empty());</div>
|
|
1055
|
+
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  _es[lhs] = _es[rhs];</div>
|
|
1056
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div>
|
|
1057
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  }</div>
|
|
1058
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> }</div>
|
|
1059
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  </div>
|
|
1060
|
+
<div class="line"><a name="l01036"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 1036</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
1061
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> {</div>
|
|
1062
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1063
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1064
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
|
|
1065
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &rhsVal = _es[rhs];</div>
|
|
1066
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  assert(!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
1067
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> offsetPair = getItvOfFlattenedElemIndex(gep);</div>
|
|
1068
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
|
|
1069
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <span class="keywordflow">return</span>;</div>
|
|
1070
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keywordflow">else</span></div>
|
|
1071
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  {</div>
|
|
1072
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> gepAddrs(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>);</div>
|
|
1073
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1074
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1075
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1076
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1077
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i <= ub; i++)</div>
|
|
1078
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  gepAddrs.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(getGepObjAddress(rhs, i));</div>
|
|
1079
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">if</span> (!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
1080
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  _es[lhs] = gepAddrs;</div>
|
|
1081
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">return</span>;</div>
|
|
1082
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  }</div>
|
|
1083
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> }</div>
|
|
1084
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  </div>
|
|
1085
|
+
<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 1061</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
|
|
1086
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> {</div>
|
|
1087
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1088
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-><a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1089
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-><a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1090
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-><a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1091
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">if</span> (inVarToValTable(tval) && inVarToValTable(fval) && inVarToValTable(cond))</div>
|
|
1092
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  {</div>
|
|
1093
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keywordflow">if</span> (_es[cond].getInterval().is_numeral())</div>
|
|
1094
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  {</div>
|
|
1095
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  _es[res] = _es[cond].getInterval().is_zero() ? _es[fval] : _es[tval];</div>
|
|
1096
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  }</div>
|
|
1097
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <span class="keywordflow">else</span></div>
|
|
1098
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  {</div>
|
|
1099
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  _es[res] = _es[cond];</div>
|
|
1100
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  }</div>
|
|
1101
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  }</div>
|
|
1102
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) && inVarToAddrsTable(fval) && inVarToValTable(cond))</div>
|
|
1103
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  {</div>
|
|
1104
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">if</span> (_es[cond].getInterval().is_numeral())</div>
|
|
1105
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  {</div>
|
|
1106
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  assert(!getAddrs(fval).getAddrs().empty());</div>
|
|
1107
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  assert(!getAddrs(tval).getAddrs().empty());</div>
|
|
1108
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  _es.getAddrs(res) = _es[cond].getInterval().is_zero() ? getAddrs(fval) : getAddrs(tval);</div>
|
|
1109
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  }</div>
|
|
1110
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  }</div>
|
|
1111
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> }</div>
|
|
1112
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  </div>
|
|
1113
|
+
<div class="line"><a name="l01089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 1089</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVFIR2ItvExeState::translatePhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
|
|
1114
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> {</div>
|
|
1115
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1116
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> rhs(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>);</div>
|
|
1117
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
|
|
1118
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  {</div>
|
|
1119
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
|
|
1120
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  </div>
|
|
1121
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">if</span> (inVarToValTable(curId) || inVarToAddrsTable(curId))</div>
|
|
1122
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  {</div>
|
|
1123
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  rhs.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(_es[curId]);</div>
|
|
1124
|
+
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  }</div>
|
|
1125
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  }</div>
|
|
1126
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <span class="keywordflow">if</span> (!rhs.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
1127
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  _es[res] = rhs;</div>
|
|
1128
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> }</div>
|
|
1129
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  </div>
|
|
1130
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  </div>
|
|
1131
|
+
<div class="line"><a name="l01107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 1107</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
|
|
1132
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> {</div>
|
|
1133
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1134
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1135
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs) || inVarToAddrsTable(rhs))</div>
|
|
1136
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  {</div>
|
|
1137
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  _es[lhs] = _es[rhs];</div>
|
|
1138
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  }</div>
|
|
1139
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> }</div>
|
|
1140
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  </div>
|
|
1141
|
+
<div class="line"><a name="l01117"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 1117</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
|
|
1142
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> {</div>
|
|
1143
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1144
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1145
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs) || inVarToAddrsTable(rhs))</div>
|
|
1146
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  {</div>
|
|
1147
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  _es[lhs] = _es[rhs];</div>
|
|
1148
1148
|
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  }</div>
|
|
1149
|
-
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> 
|
|
1150
|
-
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  {</div>
|
|
1151
|
-
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="comment">// res var is an address</span></div>
|
|
1152
|
-
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  _es.getAddrs(res) = rhsAddr;</div>
|
|
1153
|
-
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  }</div>
|
|
1154
|
-
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> }</div>
|
|
1155
|
-
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  </div>
|
|
1156
|
-
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  </div>
|
|
1157
|
-
<div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 1133</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
|
|
1158
|
-
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> {</div>
|
|
1159
|
-
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1160
|
-
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1161
|
-
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
1162
|
-
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  {</div>
|
|
1163
|
-
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  _es[lhs] = _es[rhs];</div>
|
|
1164
|
-
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  }</div>
|
|
1165
|
-
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1166
|
-
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  {</div>
|
|
1167
|
-
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1168
|
-
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  _es.getAddrs(lhs) = getAddrs(rhs);</div>
|
|
1169
|
-
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  }</div>
|
|
1170
|
-
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> }</div>
|
|
1171
|
-
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  </div>
|
|
1172
|
-
<div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 1148</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
|
|
1173
|
-
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> {</div>
|
|
1174
|
-
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1175
|
-
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1176
|
-
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs))</div>
|
|
1177
|
-
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  {</div>
|
|
1178
|
-
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  _es[lhs] = _es[rhs];</div>
|
|
1179
|
-
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  }</div>
|
|
1180
|
-
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
|
|
1181
|
-
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  {</div>
|
|
1182
|
-
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  assert(!getAddrs(rhs).empty());</div>
|
|
1183
|
-
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  _es.getAddrs(lhs) = getAddrs(rhs);</div>
|
|
1184
|
-
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  }</div>
|
|
1185
|
-
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> }</div>
|
|
1149
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> }</div>
|
|
1186
1150
|
</div><!-- fragment --></div><!-- contents -->
|
|
1187
1151
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a1f279344b4061838d7b3498631bc907c"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">SVF::AccessPath::getStructFieldOffset</a></div><div class="ttdeci">u32_t getStructFieldOffset(const SVFVar *idxOperandVar, const SVFStructType *idxOperandType) const</div><div class="ttdoc">Return byte offset from the beginning of the structure to the field where it is located for struct ty...</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00164">AccessPath.cpp:164</a></div></div>
|
|
1188
1152
|
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00060">GeneralType.h:60</a></div></div>
|
|
1189
1153
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00968">SVFStatements.h:968</a></div></div>
|
|
1190
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1154
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01107">SVFIR2ItvExeState.cpp:1107</a></div></div>
|
|
1191
1155
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00364">SVFStatements.h:364</a></div></div>
|
|
1192
1156
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a4bc7962d519c1c0380b5a6a144c91c51"><div class="ttname"><a href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">SVF::SVFType::getKind</a></div><div class="ttdeci">GNodeK getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00213">SVFType.h:213</a></div></div>
|
|
1193
1157
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a95b8031f1e15d49c7d68628be1d05aae"><div class="ttname"><a href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">SVF::SVFType::getByteSize</a></div><div class="ttdeci">u32_t getByteSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00244">SVFType.h:244</a></div></div>
|
|
1194
1158
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01049">SVFStatements.h:1049</a></div></div>
|
|
1195
1159
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a28a7ca818584abdc2d345b41d592c5dc"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">SVF::GepStmt::accumulateConstantByteOffset</a></div><div class="ttdeci">APOffset accumulateConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00574">SVFStatements.h:574</a></div></div>
|
|
1196
|
-
<div class="ttc" id="
|
|
1160
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a078ac137e60c5a2585a649f7ec40a8a8"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a078ac137e60c5a2585a649f7ec40a8a8">SVF::AbstractValue::meet_with</a></div><div class="ttdeci">void meet_with(const AbstractValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00504">AbstractValue.h:504</a></div></div>
|
|
1197
1161
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01043">SVFStatements.h:1043</a></div></div>
|
|
1198
1162
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01047">SVFStatements.h:1047</a></div></div>
|
|
1163
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_abd1e309a93a84eb7f3adc0a04827a845"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#abd1e309a93a84eb7f3adc0a04827a845">SVF::SVFIR2ItvExeState::getByteOffset</a></div><div class="ttdeci">AbstractValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00432">SVFIR2ItvExeState.cpp:432</a></div></div>
|
|
1164
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a5b242bc20845837dc439f6f585471dfd"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a5b242bc20845837dc439f6f585471dfd">SVF::SVFIR2ItvExeState::getRangeLimitFromType</a></div><div class="ttdeci">AbstractValue getRangeLimitFromType(const SVFType *type)</div><div class="ttdoc">Return the value range of Integer SVF Type, e.g. unsigned i8 Type->[0, 255], signed i8 Type->[-128,...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00049">SVFIR2ItvExeState.cpp:49</a></div></div>
|
|
1165
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a1fe5fae264d56a612b546d80e4d633a4"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a1fe5fae264d56a612b546d80e4d633a4">SVF::SVFIR2ItvExeState::narrowAddrs</a></div><div class="ttdeci">void narrowAddrs(SparseAbstractState &lhs, const SparseAbstractState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00349">SVFIR2ItvExeState.cpp:349</a></div></div>
|
|
1199
1166
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
|
|
1200
|
-
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a056e0db56033ac4dc041e6d82d614dbd"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">SVF::IntervalExeState::getAddrs</a></div><div class="ttdeci">Addrs & getAddrs(u32_t id) override</div><div class="ttdoc">get memory addresses of variable</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00454">IntervalExeState.h:454</a></div></div>
|
|
1201
1167
|
<div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
|
|
1168
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_ab1fe6a57f784971b3bc603dbfda746e8"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">SVF::AbstractValue::getAddrs</a></div><div class="ttdeci">AddressValue & getAddrs()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00171">AbstractValue.h:171</a></div></div>
|
|
1169
|
+
<div class="ttc" id="aclassSVF_1_1SparseAbstractState_html_a1683fd7da77812137b839b8c417200fe"><div class="ttname"><a href="classSVF_1_1SparseAbstractState.html#a1683fd7da77812137b839b8c417200fe">SVF::SparseAbstractState::globalES</a></div><div class="ttdeci">static SparseAbstractState globalES</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00446">AbstractState.h:446</a></div></div>
|
|
1202
1170
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a7b4921dea37246f0f08dffa7db384a61"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">SVF::AccessPath::gepSrcPointeeType</a></div><div class="ttdeci">const SVFType * gepSrcPointeeType() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00112">AccessPath.h:112</a></div></div>
|
|
1203
1171
|
<div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00813">SVFStatements.h:813</a></div></div>
|
|
1172
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a6c979397d4efb5b37e3b2bf9feba5648"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">SVF::AbstractValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00198">AbstractValue.h:198</a></div></div>
|
|
1204
1173
|
<div class="ttc" id="anamespaceSVF_html_a7c3a917e8b1d3253982e0a1a37b74d93"><div class="ttname"><a href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">SVF::u16_t</a></div><div class="ttdeci">unsigned short u16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00052">GeneralType.h:52</a></div></div>
|
|
1205
1174
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00927">SVFStatements.h:927</a></div></div>
|
|
1206
1175
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a5c6efcc023e90ef2e618586091958c59"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">SVF::MultiOpndStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID(u32_t pos) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00284">SVFStatements.cpp:284</a></div></div>
|
|
1207
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1208
|
-
<div class="ttc" id="
|
|
1209
|
-
<div class="ttc" id="
|
|
1176
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01061">SVFIR2ItvExeState.cpp:1061</a></div></div>
|
|
1177
|
+
<div class="ttc" id="aclassSVF_1_1AddressValue_html_ae93859318bf4f618b4cf681988a870ce"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">SVF::AddressValue::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00107">AddressValue.h:107</a></div></div>
|
|
1178
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6bfcfb033f23873b122dce00f5aa26ea"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6bfcfb033f23873b122dce00f5aa26ea">SVF::SVFIR2ItvExeState::widenAddrs</a></div><div class="ttdeci">void widenAddrs(SparseAbstractState &lhs, const SparseAbstractState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00303">SVFIR2ItvExeState.cpp:303</a></div></div>
|
|
1210
1179
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00954">SVFStatements.h:954</a></div></div>
|
|
1211
1180
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">SVF::CmpStmt::FCMP_OLE</a></div><div class="ttdeci">@ FCMP_OLE</div><div class="ttdoc">0 1 0 1 True if ordered and less than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00959">SVFStatements.h:959</a></div></div>
|
|
1212
1181
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ae746463dbec33f7d026b1a43e9ea4b87"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ae746463dbec33f7d026b1a43e9ea4b87">SVF::CopyStmt::PTRTOINT</a></div><div class="ttdeci">@ PTRTOINT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
|
|
1213
1182
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
|
|
1214
|
-
<div class="ttc" id="
|
|
1183
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a731b90b5308ab05867a8c8e44275ed2a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a731b90b5308ab05867a8c8e44275ed2a">SVF::SVFIR2ItvExeState::getSExtValue</a></div><div class="ttdeci">AbstractValue getSExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00156">SVFIR2ItvExeState.cpp:156</a></div></div>
|
|
1184
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00205">IntervalValue.h:205</a></div></div>
|
|
1215
1185
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">SVF::CmpStmt::ICMP_ULT</a></div><div class="ttdeci">@ ICMP_ULT</div><div class="ttdoc">unsigned less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00977">SVFStatements.h:977</a></div></div>
|
|
1216
1186
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVF::SVFType::SVFIntegerTy</a></div><div class="ttdeci">@ SVFIntegerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00169">SVFType.h:169</a></div></div>
|
|
1217
1187
|
<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#l00067">BasicTypes.h:67</a></div></div>
|
|
1218
1188
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01055">SVFStatements.h:1055</a></div></div>
|
|
1219
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad633ce5462cf878b4bc9e6e5ab079354"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad633ce5462cf878b4bc9e6e5ab079354">SVF::SVFIR2ItvExeState::getFPTruncValue</a></div><div class="ttdeci">IntervalValue getFPTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00269">SVFIR2ItvExeState.cpp:269</a></div></div>
|
|
1220
1189
|
<div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
|
|
1221
1190
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01040">SVFStatements.h:1040</a></div></div>
|
|
1222
1191
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
|
|
1223
|
-
<div class="ttc" id="
|
|
1192
|
+
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e">SVF::CopyStmt::BITCAST</a></div><div class="ttdeci">@ BITCAST</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00379">SVFStatements.h:379</a></div></div>
|
|
1193
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00630">SVFIR2ItvExeState.cpp:630</a></div></div>
|
|
1224
1194
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00881">SVFStatements.h:881</a></div></div>
|
|
1225
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a144e17cec654e83654298b379ed4ce9f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">SVF::IntervalValue::meet_with</a></div><div class="ttdeci">void meet_with(const IntervalValue &other)</div><div class="ttdoc">Return a intersected IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00460">IntervalValue.h:460</a></div></div>
|
|
1226
1195
|
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00670">SVFStatements.h:670</a></div></div>
|
|
1227
1196
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00936">SVFStatements.h:936</a></div></div>
|
|
1228
1197
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">SVF::CopyStmt::SEXT</a></div><div class="ttdeci">@ SEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00378">SVFStatements.h:378</a></div></div>
|
|
1229
1198
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01054">SVFStatements.h:1054</a></div></div>
|
|
1230
1199
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01050">SVFStatements.h:1050</a></div></div>
|
|
1231
|
-
<div class="ttc" id="
|
|
1232
|
-
<div class="ttc" id="
|
|
1200
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a2a4c1d7f48bf4ace3f6ee17bffa9515c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a2a4c1d7f48bf4ace3f6ee17bffa9515c">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">AbstractValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00502">SVFIR2ItvExeState.cpp:502</a></div></div>
|
|
1201
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00718">SVFIR2ItvExeState.cpp:718</a></div></div>
|
|
1202
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01036">SVFIR2ItvExeState.cpp:1036</a></div></div>
|
|
1233
1203
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
|
|
1234
1204
|
<div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00048">GeneralType.h:48</a></div></div>
|
|
1235
1205
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00955">SVFStatements.h:955</a></div></div>
|
|
1236
|
-
<div class="ttc" id="
|
|
1237
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01099">SVFIR2ItvExeState.cpp:1099</a></div></div>
|
|
1206
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01089">SVFIR2ItvExeState.cpp:1089</a></div></div>
|
|
1238
1207
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01044">SVFStatements.h:1044</a></div></div>
|
|
1239
1208
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01046">SVFStatements.h:1046</a></div></div>
|
|
1240
1209
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00956">SVFStatements.h:956</a></div></div>
|
|
1241
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
1242
1210
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
|
|
1243
1211
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00501">SymbolTableInfo.cpp:501</a></div></div>
|
|
1212
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_a6a49c75fb6b35159dcf1763b4484d335"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">SVF::AbstractState::_varToAbsVal</a></div><div class="ttdeci">VarToAbsValMap _varToAbsVal</div><div class="ttdoc">Map a variable (symbol) to its abstract value.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00168">AbstractState.h:168</a></div></div>
|
|
1213
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a65070193fa942569611477b68069213c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a65070193fa942569611477b68069213c">SVF::SVFIR2ItvExeState::getTruncValue</a></div><div class="ttdeci">AbstractValue getTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00219">SVFIR2ItvExeState.cpp:219</a></div></div>
|
|
1244
1214
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01052">SVFStatements.h:1052</a></div></div>
|
|
1215
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_aecd8d41379dd6496772537ad51d1cb02"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">SVF::AbstractValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00204">AbstractValue.h:204</a></div></div>
|
|
1245
1216
|
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00610">SVFStatements.h:610</a></div></div>
|
|
1246
1217
|
<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>
|
|
1247
1218
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01051">SVFStatements.h:1051</a></div></div>
|
|
1248
1219
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">SVF::CopyStmt::FPTRUNC</a></div><div class="ttdeci">@ FPTRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00381">SVFStatements.h:381</a></div></div>
|
|
1249
1220
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
|
|
1250
|
-
<div class="ttc" id="
|
|
1221
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a52a8a738896179a148581e1060a2ed66"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">SVF::AbstractValue::join_with</a></div><div class="ttdeci">void join_with(const AbstractValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00482">AbstractValue.h:482</a></div></div>
|
|
1222
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00082">IntervalValue.h:82</a></div></div>
|
|
1251
1223
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00904">SVFIR2ItvExeState.cpp:904</a></div></div>
|
|
1252
1224
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
1253
1225
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00180">SymbolTableInfo.cpp:180</a></div></div>
|
|
@@ -1255,111 +1227,108 @@ $(function() {
|
|
|
1255
1227
|
<div class="ttc" id="anamespaceSVF_html_a6ce4cf67f8622443c888737d7366a3e9"><div class="ttname"><a href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">SVF::s16_t</a></div><div class="ttdeci">signed short s16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00053">GeneralType.h:53</a></div></div>
|
|
1256
1228
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00967">SVFStatements.h:967</a></div></div>
|
|
1257
1229
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01022">SVFStatements.h:1022</a></div></div>
|
|
1230
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_acbcec6f55d23e6cd278fe8572a68f393"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">SVF::AbstractValue::getInterval</a></div><div class="ttdeci">IntervalValue & getInterval()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00154">AbstractValue.h:154</a></div></div>
|
|
1258
1231
|
<div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00452">SVFStatements.h:452</a></div></div>
|
|
1259
1232
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
1260
1233
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a348de09a7ccd04d1fa76fa6b250249ba"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::IdxOperandPairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00560">SVFStatements.h:560</a></div></div>
|
|
1261
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1234
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l01117">SVFIR2ItvExeState.cpp:1117</a></div></div>
|
|
1262
1235
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
|
|
1263
1236
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00377">SVFType.h:377</a></div></div>
|
|
1264
1237
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
1265
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1238
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00656">SVFIR2ItvExeState.cpp:656</a></div></div>
|
|
1266
1239
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5dc699aa85fe879eb4b2c9109cf3030d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">SVF::SymbolTableInfo::getTypeInfo</a></div><div class="ttdeci">const StInfo * getTypeInfo(const SVFType *T) const</div><div class="ttdoc">Get struct info.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00056">SymbolTableInfo.cpp:56</a></div></div>
|
|
1267
1240
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
1241
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae376d3db857bf286dcff3704b540376e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae376d3db857bf286dcff3704b540376e">SVF::SVFIR2ItvExeState::getSIntToFPValue</a></div><div class="ttdeci">AbstractValue getSIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00197">SVFIR2ItvExeState.cpp:197</a></div></div>
|
|
1268
1242
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00156">SVFType.h:156</a></div></div>
|
|
1269
1243
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00966">SVFStatements.h:966</a></div></div>
|
|
1270
1244
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath & getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00556">SVFStatements.h:556</a></div></div>
|
|
1245
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a61516b8cd3550afd29f80fbe8c9146ff"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">SVF::AbstractValue::isUnknown</a></div><div class="ttdeci">bool isUnknown() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00083">AbstractValue.h:83</a></div></div>
|
|
1271
1246
|
<div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00344">SVFType.h:344</a></div></div>
|
|
1272
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a335922caf105ee72cd9d66a451ae3d4e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVF::SVFIR2ItvExeState::getByteOffset</a></div><div class="ttdeci">IntervalValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00437">SVFIR2ItvExeState.cpp:437</a></div></div>
|
|
1273
1247
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01039">SVFStatements.h:1039</a></div></div>
|
|
1274
1248
|
<div class="ttc" id="aclassSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00169">IRGraph.h:169</a></div></div>
|
|
1275
1249
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00919">SVFStatements.h:919</a></div></div>
|
|
1276
|
-
<div class="ttc" id="
|
|
1250
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_ae8a8fb4dc6ff1d7faddea6a9b1e65f1e"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">SVF::AbstractValue::equals</a></div><div class="ttdeci">bool equals(const AbstractValue &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00465">AbstractValue.h:465</a></div></div>
|
|
1277
1251
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
|
|
1278
1252
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00966">SVFValue.h:966</a></div></div>
|
|
1279
1253
|
<div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01000">SVFValue.h:1000</a></div></div>
|
|
1280
1254
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01042">SVFStatements.h:1042</a></div></div>
|
|
1281
1255
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4f482ca73cc6e7b8d946651e2b2ea2ae"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">SVF::AccessPath::IdxOperandPair</a></div><div class="ttdeci">std::pair< const SVFVar *, const SVFType * > IdxOperandPair</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00064">AccessPath.h:64</a></div></div>
|
|
1282
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1283
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
1284
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad53e6d2fc9d1410df236584bb66c585a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad53e6d2fc9d1410df236584bb66c585a">SVF::SVFIR2ItvExeState::getFPToSIntValue</a></div><div class="ttdeci">IntervalValue getFPToSIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00162">SVFIR2ItvExeState.cpp:162</a></div></div>
|
|
1256
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00930">SVFIR2ItvExeState.cpp:930</a></div></div>
|
|
1257
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00212">IntervalValue.h:212</a></div></div>
|
|
1285
1258
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00963">SVFStatements.h:963</a></div></div>
|
|
1286
|
-
<div class="ttc" id="
|
|
1287
|
-
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html">SVF::IntervalExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00407">IntervalExeState.h:407</a></div></div>
|
|
1259
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6947db496e01821be2b3f3f21a75c426"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6947db496e01821be2b3f3f21a75c426">SVF::SVFIR2ItvExeState::getFPToSIntValue</a></div><div class="ttdeci">AbstractValue getFPToSIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00161">SVFIR2ItvExeState.cpp:161</a></div></div>
|
|
1288
1260
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">SVF::CmpStmt::ICMP_EQ</a></div><div class="ttdeci">@ ICMP_EQ</div><div class="ttdoc">equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00973">SVFStatements.h:973</a></div></div>
|
|
1289
1261
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00960">SVFStatements.h:960</a></div></div>
|
|
1290
1262
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00965">SVFStatements.h:965</a></div></div>
|
|
1291
1263
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
1292
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6e4e3eeca9d25fb5eab496faeb6264c3"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">IntervalValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00507">SVFIR2ItvExeState.cpp:507</a></div></div>
|
|
1293
1264
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_aa69f9536301d6529eb1d0caaec2fcc63"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">SVF::NumericLiteral::getRealNumeral</a></div><div class="ttdeci">double getRealNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00143">NumericLiteral.h:143</a></div></div>
|
|
1294
|
-
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a92b1b163493a74a31d30a261128edd05"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">SVF::IntervalExeState::globalES</a></div><div class="ttdeci">static IntervalExeState globalES</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00413">IntervalExeState.h:413</a></div></div>
|
|
1295
1265
|
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00489">SVFStatements.h:489</a></div></div>
|
|
1296
1266
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">SVF::CopyStmt::TRUNC</a></div><div class="ttdeci">@ TRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00380">SVFStatements.h:380</a></div></div>
|
|
1297
|
-
<div class="ttc" id="
|
|
1298
|
-
<div class="ttc" id="
|
|
1299
|
-
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00177">AddressValue.h:177</a></div></div>
|
|
1267
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00042">IntervalValue.h:42</a></div></div>
|
|
1268
|
+
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00164">AddressValue.h:164</a></div></div>
|
|
1300
1269
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00080">SymbolTableInfo.cpp:80</a></div></div>
|
|
1301
1270
|
<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>
|
|
1302
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1271
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00955">SVFIR2ItvExeState.cpp:955</a></div></div>
|
|
1303
1272
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00290">SVFStatements.h:290</a></div></div>
|
|
1304
|
-
<div class="ttc" id="aclassSVF_1_1ExeState_html_ad317f2ae2e599a131a6fd9f415f5d712"><div class="ttname"><a href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">SVF::ExeState::_varToAddrs</a></div><div class="ttdeci">VarToAddrs _varToAddrs</div><div class="ttdoc">Map a variable (symbol) to its memory addresses.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00096">ExeState.h:96</a></div></div>
|
|
1305
1273
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00565">SVFStatements.h:565</a></div></div>
|
|
1306
|
-
<div class="ttc" id="
|
|
1274
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a9ca6b7699ba33452f6b312c2952c289b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a9ca6b7699ba33452f6b312c2952c289b">SVF::SVFIR2ItvExeState::getFPTruncValue</a></div><div class="ttdeci">AbstractValue getFPTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00268">SVFIR2ItvExeState.cpp:268</a></div></div>
|
|
1275
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00286">SVFIR2ItvExeState.cpp:286</a></div></div>
|
|
1307
1276
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00047">GeneralType.h:47</a></div></div>
|
|
1308
|
-
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#
|
|
1277
|
+
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00102">AddressValue.h:102</a></div></div>
|
|
1309
1278
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a2f70e9c830b18f25c56b530722f106c4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">SVF::MemObj::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get the reference value to this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00406">SymbolTableInfo.h:406</a></div></div>
|
|
1310
1279
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00526">SVFStatements.h:526</a></div></div>
|
|
1311
1280
|
<div class="ttc" id="aclassSVF_1_1Options_html_a429c3000ee2ac45119b8c241aa06762c"><div class="ttname"><a href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">SVF::Options::ModelArrays</a></div><div class="ttdeci">static const Option< bool > ModelArrays</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00207">Options.h:207</a></div></div>
|
|
1312
|
-
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a40c67147606ab95dd3318d0fe821d8c0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">SVF::AddressValue::insert</a></div><div class="ttdeci">std::pair< AddressValue::AddrSet::iterator, bool > insert(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00125">AddressValue.h:125</a></div></div>
|
|
1313
1281
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01041">SVFStatements.h:1041</a></div></div>
|
|
1314
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa027be2f9243ce4cae799b265b019443"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">SVF::IntervalValue::bottom</a></div><div class="ttdeci">static IntervalValue bottom()</div><div class="ttdoc">Create the bottom IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00089">IntervalValue.h:89</a></div></div>
|
|
1315
1282
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a1dd264b9f3b43d04aa1396443ad6ad33"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">APOffset accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00580">SVFStatements.h:580</a></div></div>
|
|
1316
1283
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">SVF::CopyStmt::UITOFP</a></div><div class="ttdeci">@ UITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00384">SVFStatements.h:384</a></div></div>
|
|
1317
1284
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">SVF::CmpStmt::FCMP_OGE</a></div><div class="ttdeci">@ FCMP_OGE</div><div class="ttdoc">0 0 1 1 True if ordered and greater than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
|
|
1318
1285
|
<div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
|
|
1286
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a894f4008a1a7ad002c824ac6832120fe"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a894f4008a1a7ad002c824ac6832120fe">SVF::SVFIR2ItvExeState::globalNulladdrs</a></div><div class="ttdeci">static AbstractValue globalNulladdrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00046">SVFIR2ItvExeState.h:46</a></div></div>
|
|
1319
1287
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00964">SVFStatements.h:964</a></div></div>
|
|
1320
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a1579525f7cf7779aba58c4bdde2be4b0"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a1579525f7cf7779aba58c4bdde2be4b0">SVF::SVFIR2ItvExeState::globalNulladdrs</a></div><div class="ttdeci">static Addrs globalNulladdrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00048">SVFIR2ItvExeState.h:48</a></div></div>
|
|
1321
1288
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">SVF::BinaryOPStmt::SRem</a></div><div class="ttdeci">@ SRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01048">SVFStatements.h:1048</a></div></div>
|
|
1289
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a37f110616b1fe4ae921aaa296c88e973"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a37f110616b1fe4ae921aaa296c88e973">SVF::SVFIR2ItvExeState::getFPToUIntValue</a></div><div class="ttdeci">AbstractValue getFPToUIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00179">SVFIR2ItvExeState.cpp:179</a></div></div>
|
|
1322
1290
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">SVF::CopyStmt::SITOFP</a></div><div class="ttdeci">@ SITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00385">SVFStatements.h:385</a></div></div>
|
|
1323
1291
|
<div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00291">SVFType.h:291</a></div></div>
|
|
1324
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a5d65dbc9a43181494a32d41a03065685"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a5d65dbc9a43181494a32d41a03065685">SVF::SVFIR2ItvExeState::getSExtValue</a></div><div class="ttdeci">IntervalValue getSExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00157">SVFIR2ItvExeState.cpp:157</a></div></div>
|
|
1325
1292
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">SVF::CmpStmt::ICMP_NE</a></div><div class="ttdeci">@ ICMP_NE</div><div class="ttdoc">not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
|
|
1326
|
-
<div class="ttc" id="
|
|
1293
|
+
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a674f9bb98053f8658e246863d6561072"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00059">IntervalValue.h:59</a></div></div>
|
|
1327
1294
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00496">SymbolTableInfo.cpp:496</a></div></div>
|
|
1295
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a0cfd69391796e6bb518806003191f9df"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a0cfd69391796e6bb518806003191f9df">SVF::SVFIR2ItvExeState::getZExtValue</a></div><div class="ttdeci">AbstractValue getZExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00111">SVFIR2ItvExeState.cpp:111</a></div></div>
|
|
1328
1296
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01011">SVFStatements.h:1011</a></div></div>
|
|
1329
1297
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html"><div class="ttname"><a href="classSVF_1_1AddressValue.html">SVF::AddressValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00043">AddressValue.h:43</a></div></div>
|
|
1330
1298
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00923">SVFStatements.h:923</a></div></div>
|
|
1331
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a15dbee007f3afb718a202f50fa87177f"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a15dbee007f3afb718a202f50fa87177f">SVF::SVFIR2ItvExeState::getTruncValue</a></div><div class="ttdeci">IntervalValue getTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00220">SVFIR2ItvExeState.cpp:220</a></div></div>
|
|
1332
1299
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a8e19113913c2aa236ab35d3bdd49541c"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">SVF::NumericLiteral::getIntNumeral</a></div><div class="ttdeci">s64_t getIntNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00148">NumericLiteral.h:148</a></div></div>
|
|
1333
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1300
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00612">SVFIR2ItvExeState.cpp:612</a></div></div>
|
|
1301
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ac2ea42370b5624434bbd60a42c2a81c9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ac2ea42370b5624434bbd60a42c2a81c9">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">AbstractValue getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00389">SVFIR2ItvExeState.cpp:389</a></div></div>
|
|
1334
1302
|
<div class="ttc" id="acJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
|
|
1303
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afa0945e4c87ea373e367016ad3cd4b57"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afa0945e4c87ea373e367016ad3cd4b57">SVF::SVFIR2ItvExeState::applySummary</a></div><div class="ttdeci">void applySummary(SparseAbstractState &es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00274">SVFIR2ItvExeState.cpp:274</a></div></div>
|
|
1335
1304
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">SVF::CopyStmt::FPTOSI</a></div><div class="ttdeci">@ FPTOSI</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
|
|
1336
1305
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01081">SVFStatements.h:1081</a></div></div>
|
|
1337
|
-
<div class="ttc" id="
|
|
1306
|
+
<div class="ttc" id="aclassSVF_1_1SparseAbstractState_html"><div class="ttname"><a href="classSVF_1_1SparseAbstractState.html">SVF::SparseAbstractState</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00440">AbstractState.h:440</a></div></div>
|
|
1338
1307
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00353">SVFVariables.h:353</a></div></div>
|
|
1339
1308
|
<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>
|
|
1340
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1309
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00577">SVFIR2ItvExeState.cpp:577</a></div></div>
|
|
1341
1310
|
<div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
1342
1311
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01045">SVFStatements.h:1045</a></div></div>
|
|
1343
1312
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
1344
1313
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00790">SVFStatements.h:790</a></div></div>
|
|
1345
|
-
<div class="ttc" id="aclassSVF_1_1ExeState_html_a79866a547dc4805d3fefdfd528d2df2a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">SVF::ExeState::_locToAddrs</a></div><div class="ttdeci">VarToAddrs _locToAddrs</div><div class="ttdoc">Map a memory address to its stored memory addresses.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00097">ExeState.h:97</a></div></div>
|
|
1346
1314
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
|
|
1347
|
-
<div class="ttc" id="
|
|
1315
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_aade30bb08f86b3f74e7aa9cdc60c92a3"><div class="ttname"><a href="classSVF_1_1AbstractState.html#aade30bb08f86b3f74e7aa9cdc60c92a3">SVF::AbstractState::_locToAbsVal</a></div><div class="ttdeci">LocToAbsValMap _locToAbsVal</div><div class="ttdoc">Map a memory address to its stored abstract value.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00169">AbstractState.h:169</a></div></div>
|
|
1348
1316
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00982">SVFStatements.h:982</a></div></div>
|
|
1349
1317
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
1318
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">SVF::AbstractValue::UnknownType</a></div><div class="ttdeci">@ UnknownType</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00035">AbstractValue.h:35</a></div></div>
|
|
1350
1319
|
<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>
|
|
1351
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a103b55536f1cec38edb2f169d3f94675"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a103b55536f1cec38edb2f169d3f94675">SVF::SVFIR2ItvExeState::narrowAddrs</a></div><div class="ttdeci">void narrowAddrs(IntervalExeState &lhs, const IntervalExeState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00360">SVFIR2ItvExeState.cpp:360</a></div></div>
|
|
1352
1320
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ab6f95d3e7e099d75cfc9645ebc037047"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const SVFType * getType() const</div><div class="ttdoc">Return type of the value.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
|
|
1353
1321
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">SVF::CmpStmt::ICMP_SGE</a></div><div class="ttdeci">@ ICMP_SGE</div><div class="ttdoc">signed greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
|
|
1322
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a73db35f4fd5773e77553dd61b3b1574a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a73db35f4fd5773e77553dd61b3b1574a">SVF::SVFIR2ItvExeState::getUIntToFPValue</a></div><div class="ttdeci">AbstractValue getUIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00208">SVFIR2ItvExeState.cpp:208</a></div></div>
|
|
1354
1323
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00289">SVFStatements.cpp:289</a></div></div>
|
|
1355
|
-
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a04456fe47889dd8f1b712255c9598fe9"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">SVF::AddressValue::equals</a></div><div class="ttdeci">bool equals(const AddressValue &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00089">AddressValue.h:89</a></div></div>
|
|
1356
1324
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00049">GeneralType.h:49</a></div></div>
|
|
1357
|
-
<div class="ttc" id="
|
|
1325
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a8b1af972fa8a4e40347990d179ec1c52"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a8b1af972fa8a4e40347990d179ec1c52">SVF::AbstractValue::isBottom</a></div><div class="ttdeci">bool isBottom() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00192">AbstractValue.h:192</a></div></div>
|
|
1326
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a5cc67e56c658a6833b1bf9235f2a73ba"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">SVF::AbstractValue::insertAddr</a></div><div class="ttdeci">std::pair< AddressValue::AddrSet::iterator, bool > insertAddr(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00456">AbstractValue.h:456</a></div></div>
|
|
1327
|
+
<div class="ttc" id="astructSVF_1_1AbstractValue_html"><div class="ttname"><a href="structSVF_1_1AbstractValue.html">SVF::AbstractValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00029">AbstractValue.h:29</a></div></div>
|
|
1358
1328
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">SVF::CopyStmt::ZEXT</a></div><div class="ttdeci">@ ZEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00377">SVFStatements.h:377</a></div></div>
|
|
1359
1329
|
<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>
|
|
1360
1330
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00975">SVFStatements.h:975</a></div></div>
|
|
1361
1331
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01053">SVFStatements.h:1053</a></div></div>
|
|
1362
|
-
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00397">IntervalValue.h:397</a></div></div>
|
|
1363
1332
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83">SVF::CopyStmt::INTTOPTR</a></div><div class="ttdeci">@ INTTOPTR</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00386">SVFStatements.h:386</a></div></div>
|
|
1364
1333
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">SVF::CopyStmt::COPYVAL</a></div><div class="ttdeci">@ COPYVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00376">SVFStatements.h:376</a></div></div>
|
|
1365
1334
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00969">SVFStatements.h:969</a></div></div>
|
|
@@ -1368,8 +1337,7 @@ $(function() {
|
|
|
1368
1337
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00491">SymbolTableInfo.cpp:491</a></div></div>
|
|
1369
1338
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c">SVF::CopyStmt::FPTOUI</a></div><div class="ttdeci">@ FPTOUI</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00382">SVFStatements.h:382</a></div></div>
|
|
1370
1339
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01038">SVFStatements.h:1038</a></div></div>
|
|
1371
|
-
<div class="ttc" id="
|
|
1372
|
-
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00105">AddressValue.h:105</a></div></div>
|
|
1340
|
+
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00092">AddressValue.h:92</a></div></div>
|
|
1373
1341
|
<!-- start footer part -->
|
|
1374
1342
|
<hr class="footer"/><address class="footer"><small>
|
|
1375
1343
|
Generated by  <a href="http://www.doxygen.org/index.html">
|