svf-tools 1.0.811 → 1.0.813
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/AccessPath_8cpp_source.html +159 -136
- package/SVF-doxygen/html/AccessPath_8h_source.html +45 -42
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +21 -21
- package/SVF-doxygen/html/ConsExeState_8h_source.html +384 -385
- package/SVF-doxygen/html/ConsG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ExeState_8cpp_source.html +24 -24
- package/SVF-doxygen/html/ExeState_8h_source.html +227 -217
- package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +8 -8
- package/SVF-doxygen/html/IntervalExeState_8h_source.html +412 -408
- package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +3 -3
- package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +13 -13
- package/SVF-doxygen/html/SVFFileSystem_8h_source.html +11 -11
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +273 -272
- package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +28 -28
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +980 -973
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +169 -169
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +33 -33
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +11 -11
- package/SVF-doxygen/html/SVFIR_8cpp_source.html +14 -14
- package/SVF-doxygen/html/SVFIR_8h_source.html +11 -11
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +19 -19
- package/SVF-doxygen/html/SVFStatements_8h_source.html +829 -830
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/VFGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/VFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/VFG_8h_source.html +10 -10
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +18 -17
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +206 -153
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +68 -68
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +51 -51
- package/SVF-doxygen/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +35 -35
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +97 -97
- package/SVF-doxygen/html/classSVF_1_1ConsExeState-members.html +74 -74
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +412 -394
- package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExeState-members.html +34 -34
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +287 -272
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +37 -37
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1IntervalExeState-members.html +78 -78
- package/SVF-doxygen/html/classSVF_1_1IntervalExeState.html +445 -434
- package/SVF-doxygen/html/classSVF_1_1MultiOpndStmt.html +48 -48
- package/SVF-doxygen/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +46 -46
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +35 -35
- package/SVF-doxygen/html/classSVF_1_1SVFIR.html +13 -13
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState-members.html +28 -28
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +296 -295
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +15 -16
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1087 -1128
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIRWriter.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +38 -38
- package/SVF-doxygen/html/classSVF_1_1SymState.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +22 -22
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +21 -21
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +44 -44
- package/SVF-doxygen/html/classSVF_1_1VFG.html +15 -15
- package/SVF-doxygen/html/functions.html +6 -6
- package/SVF-doxygen/html/functions_a.html +13 -8
- package/SVF-doxygen/html/functions_b.html +3 -3
- package/SVF-doxygen/html/functions_e.html +2 -2
- package/SVF-doxygen/html/functions_func_e.html +2 -2
- package/SVF-doxygen/html/functions_func_g.html +44 -45
- package/SVF-doxygen/html/functions_func_i.html +12 -22
- package/SVF-doxygen/html/functions_func_l.html +6 -6
- package/SVF-doxygen/html/functions_func_n.html +3 -3
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_func_s.html +7 -7
- package/SVF-doxygen/html/functions_func_w.html +3 -3
- package/SVF-doxygen/html/functions_g.html +42 -43
- package/SVF-doxygen/html/functions_i.html +30 -37
- package/SVF-doxygen/html/functions_l.html +8 -8
- package/SVF-doxygen/html/functions_n.html +7 -7
- package/SVF-doxygen/html/functions_o.html +20 -21
- package/SVF-doxygen/html/functions_p.html +12 -12
- package/SVF-doxygen/html/functions_r.html +3 -1
- package/SVF-doxygen/html/functions_s.html +18 -20
- package/SVF-doxygen/html/functions_t.html +10 -10
- package/SVF-doxygen/html/functions_type.html +5 -0
- package/SVF-doxygen/html/functions_type_i.html +4 -4
- package/SVF-doxygen/html/functions_type_v.html +3 -8
- package/SVF-doxygen/html/functions_v.html +10 -13
- package/SVF-doxygen/html/functions_vars.html +6 -6
- package/SVF-doxygen/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/functions_vars_o.html +0 -3
- package/SVF-doxygen/html/functions_w.html +11 -11
- package/SVF-doxygen/html/search/all_0.js +4 -4
- package/SVF-doxygen/html/search/all_1.js +210 -209
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +222 -222
- package/SVF-doxygen/html/search/all_12.js +544 -544
- package/SVF-doxygen/html/search/all_13.js +191 -191
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -169
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_2.js +169 -169
- package/SVF-doxygen/html/search/all_3.js +642 -642
- package/SVF-doxygen/html/search/all_4.js +233 -233
- package/SVF-doxygen/html/search/all_5.js +119 -119
- package/SVF-doxygen/html/search/all_6.js +225 -225
- package/SVF-doxygen/html/search/all_7.js +868 -868
- package/SVF-doxygen/html/search/all_8.js +197 -197
- package/SVF-doxygen/html/search/all_9.js +606 -611
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +115 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +55 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/search/functions_1.js +360 -360
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/search/functions_12.js +279 -279
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +87 -87
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/search/functions_7.js +852 -852
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +423 -428
- 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 +26 -26
- package/SVF-doxygen/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +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 +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -18
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -34
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +55 -55
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +44 -44
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -77
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +29 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +9 -9
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ConsExeState_01_4.html +5 -5
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +5 -5
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1IntervalExeState_01_4.html +5 -5
- package/SVF-doxygen/html/svf-ex_8cpp.html +17 -17
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +17 -17
- package/package.json +1 -1
- package/svf/include/AbstractExecution/ConsExeState.h +99 -96
- package/svf/include/AbstractExecution/ExeState.h +66 -53
- package/svf/include/AbstractExecution/IntervalExeState.h +66 -61
- package/svf/include/AbstractExecution/SVFIR2ConsExeState.h +7 -7
- package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +22 -19
- package/svf/include/MemoryModel/AccessPath.h +13 -11
- package/svf/include/SVFIR/SVFStatements.h +2 -3
- package/svf/lib/AbstractExecution/ConsExeState.cpp +13 -13
- package/svf/lib/AbstractExecution/ExeState.cpp +19 -19
- package/svf/lib/AbstractExecution/IntervalExeState.cpp +4 -4
- package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +38 -37
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +273 -287
- package/svf/lib/MemoryModel/AccessPath.cpp +39 -17
- package/svf/lib/SVFIR/SVFFileSystem.cpp +2 -2
|
@@ -91,10 +91,10 @@ Public Types</h2></td></tr>
|
|
|
91
91
|
<br />
|
|
92
92
|
}</td></tr>
|
|
93
93
|
<tr class="separator:aabb6c9600fac408f36b9fde013597245"><td class="memSeparator" colspan="2"> </td></tr>
|
|
94
|
-
<tr class="memitem:
|
|
95
|
-
<tr class="separator:
|
|
96
|
-
<tr class="memitem:
|
|
97
|
-
<tr class="separator:
|
|
94
|
+
<tr class="memitem:a4f482ca73cc6e7b8d946651e2b2ea2ae"><td class="memItemLeft" align="right" valign="top">typedef std::pair< const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *, const <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">IdxOperandPair</a></td></tr>
|
|
95
|
+
<tr class="separator:a4f482ca73cc6e7b8d946651e2b2ea2ae"><td class="memSeparator" colspan="2"> </td></tr>
|
|
96
|
+
<tr class="memitem:a04ca154a70f40999a6a28c505bfd942d"><td class="memItemLeft" align="right" valign="top">typedef std::vector< <a class="el" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">IdxOperandPair</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a></td></tr>
|
|
97
|
+
<tr class="separator:a04ca154a70f40999a6a28c505bfd942d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
98
|
</table><table class="memberdecls">
|
|
99
99
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
100
100
|
Public Member Functions</h2></td></tr>
|
|
@@ -120,8 +120,8 @@ Public Member Functions</h2></td></tr>
|
|
|
120
120
|
<tr class="separator:a68e49bb797a84ea035ea338549f2e054"><td class="memSeparator" colspan="2"> </td></tr>
|
|
121
121
|
<tr class="memitem:ab95df74c97fba13206df48e00131e15f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#ab95df74c97fba13206df48e00131e15f">setFldIdx</a> (<a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> idx)</td></tr>
|
|
122
122
|
<tr class="separator:ab95df74c97fba13206df48e00131e15f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
123
|
-
<tr class="memitem:
|
|
124
|
-
<tr class="separator:
|
|
123
|
+
<tr class="memitem:a586c71842e3e4487921aa3384ce9d025"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a> () const</td></tr>
|
|
124
|
+
<tr class="separator:a586c71842e3e4487921aa3384ce9d025"><td class="memSeparator" colspan="2"> </td></tr>
|
|
125
125
|
<tr class="memitem:a43dc770c4458c6ac58c591974b93fc57"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a43dc770c4458c6ac58c591974b93fc57">computeConstantByteOffset</a> () const</td></tr>
|
|
126
126
|
<tr class="separator:a43dc770c4458c6ac58c591974b93fc57"><td class="memSeparator" colspan="2"> </td></tr>
|
|
127
127
|
<tr class="memitem:ae746362c42da05a641ae062658e40651"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">computeConstantOffset</a> () const</td></tr>
|
|
@@ -138,6 +138,9 @@ Public Member Functions</h2></td></tr>
|
|
|
138
138
|
<tr class="memitem:a461fe4cddd5d8c8b7017588038c093de"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a461fe4cddd5d8c8b7017588038c093de">intersects</a> (const <a class="el" href="classSVF_1_1AccessPath.html">AccessPath</a> &RHS) const</td></tr>
|
|
139
139
|
<tr class="memdesc:a461fe4cddd5d8c8b7017588038c093de"><td class="mdescLeft"> </td><td class="mdescRight">Return TRUE if we share any location in common with RHS. <a href="classSVF_1_1AccessPath.html#a461fe4cddd5d8c8b7017588038c093de">More...</a><br /></td></tr>
|
|
140
140
|
<tr class="separator:a461fe4cddd5d8c8b7017588038c093de"><td class="memSeparator" colspan="2"> </td></tr>
|
|
141
|
+
<tr class="memitem:a1f279344b4061838d7b3498631bc907c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">getStructFieldOffset</a> (const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *idxOperandVar, const <a class="el" href="classSVF_1_1SVFStructType.html">SVFStructType</a> *idxOperandType) const</td></tr>
|
|
142
|
+
<tr class="memdesc:a1f279344b4061838d7b3498631bc907c"><td class="mdescLeft"> </td><td class="mdescRight">Return byte offset from the beginning of the structure to the field where it is located for struct type. <a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">More...</a><br /></td></tr>
|
|
143
|
+
<tr class="separator:a1f279344b4061838d7b3498631bc907c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
141
144
|
<tr class="memitem:a4519477605a58d5821d05951a88abcd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">dump</a> () const</td></tr>
|
|
142
145
|
<tr class="memdesc:a4519477605a58d5821d05951a88abcd0"><td class="mdescLeft"> </td><td class="mdescRight">Dump location set. <a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">More...</a><br /></td></tr>
|
|
143
146
|
<tr class="separator:a4519477605a58d5821d05951a88abcd0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -156,9 +159,9 @@ Private Attributes</h2></td></tr>
|
|
|
156
159
|
<tr class="memitem:aa1747064a0833855a5848ebf4a4d65fa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a></td></tr>
|
|
157
160
|
<tr class="memdesc:aa1747064a0833855a5848ebf4a4d65fa"><td class="mdescLeft"> </td><td class="mdescRight">Accumulated Constant Offsets. <a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">More...</a><br /></td></tr>
|
|
158
161
|
<tr class="separator:aa1747064a0833855a5848ebf4a4d65fa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
159
|
-
<tr class="memitem:
|
|
160
|
-
<tr class="memdesc:
|
|
161
|
-
<tr class="separator:
|
|
162
|
+
<tr class="memitem:a47855e8ab3bba692f443903b58618229"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a></td></tr>
|
|
163
|
+
<tr class="memdesc:a47855e8ab3bba692f443903b58618229"><td class="mdescLeft"> </td><td class="mdescRight">a vector of actual offset in the form of <<a class="el" href="namespaceSVF.html" title="for isBitcode">SVF</a> Var, iterator type> <a href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">More...</a><br /></td></tr>
|
|
164
|
+
<tr class="separator:a47855e8ab3bba692f443903b58618229"><td class="memSeparator" colspan="2"> </td></tr>
|
|
162
165
|
</table><table class="memberdecls">
|
|
163
166
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
|
|
164
167
|
Friends</h2></td></tr>
|
|
@@ -173,14 +176,14 @@ Friends</h2></td></tr>
|
|
|
173
176
|
<div class="textblock">
|
|
174
177
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00052">52</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
175
178
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
176
|
-
<a id="
|
|
177
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
179
|
+
<a id="a4f482ca73cc6e7b8d946651e2b2ea2ae"></a>
|
|
180
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a4f482ca73cc6e7b8d946651e2b2ea2ae">◆ </a></span>IdxOperandPair</h2>
|
|
178
181
|
|
|
179
182
|
<div class="memitem">
|
|
180
183
|
<div class="memproto">
|
|
181
184
|
<table class="memname">
|
|
182
185
|
<tr>
|
|
183
|
-
<td class="memname">typedef std::pair<const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a>*, const <a class="el" href="classSVF_1_1SVFType.html">SVFType</a>*> <a class="el" href="classSVF_1_1AccessPath.html#
|
|
186
|
+
<td class="memname">typedef std::pair<const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a>*, const <a class="el" href="classSVF_1_1SVFType.html">SVFType</a>*> <a class="el" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">SVF::AccessPath::IdxOperandPair</a></td>
|
|
184
187
|
</tr>
|
|
185
188
|
</table>
|
|
186
189
|
</div><div class="memdoc">
|
|
@@ -189,14 +192,14 @@ Friends</h2></td></tr>
|
|
|
189
192
|
|
|
190
193
|
</div>
|
|
191
194
|
</div>
|
|
192
|
-
<a id="
|
|
193
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
195
|
+
<a id="a04ca154a70f40999a6a28c505bfd942d"></a>
|
|
196
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a04ca154a70f40999a6a28c505bfd942d">◆ </a></span>IdxOperandPairs</h2>
|
|
194
197
|
|
|
195
198
|
<div class="memitem">
|
|
196
199
|
<div class="memproto">
|
|
197
200
|
<table class="memname">
|
|
198
201
|
<tr>
|
|
199
|
-
<td class="memname">typedef std::vector<<a class="el" href="classSVF_1_1AccessPath.html#
|
|
202
|
+
<td class="memname">typedef std::vector<<a class="el" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">IdxOperandPair</a>> <a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">SVF::AccessPath::IdxOperandPairs</a></td>
|
|
200
203
|
</tr>
|
|
201
204
|
</table>
|
|
202
205
|
</div><div class="memdoc">
|
|
@@ -292,7 +295,7 @@ Friends</h2></td></tr>
|
|
|
292
295
|
|
|
293
296
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00071">71</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
294
297
|
<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  : <a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>(ap.fldIdx),</div>
|
|
295
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSVF_1_1AccessPath.html#
|
|
298
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>(ap.getIdxOperandPairVec())</div>
|
|
296
299
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div>
|
|
297
300
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div>
|
|
298
301
|
</div><!-- fragment -->
|
|
@@ -356,7 +359,7 @@ Friends</h2></td></tr>
|
|
|
356
359
|
|
|
357
360
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00042">42</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
358
361
|
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
|
|
359
|
-
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1AccessPath.html#
|
|
362
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.emplace_back(var, gepIterType);</div>
|
|
360
363
|
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
361
364
|
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
|
|
362
365
|
</div><!-- fragment -->
|
|
@@ -398,26 +401,26 @@ Friends</h2></td></tr>
|
|
|
398
401
|
|
|
399
402
|
<p>Check relations of two location sets. </p>
|
|
400
403
|
|
|
401
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
402
|
-
<div class="fragment"><div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
404
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00290">290</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
405
|
+
<div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> {</div>
|
|
406
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
407
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
408
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
|
|
409
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div>
|
|
410
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
|
|
411
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">Same</a>;</div>
|
|
412
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
|
|
413
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">Superset</a>;</div>
|
|
414
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
|
|
415
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">Subset</a>;</div>
|
|
416
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">else</span></div>
|
|
417
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">Overlap</a>;</div>
|
|
418
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
419
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">else</span></div>
|
|
420
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div>
|
|
421
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">NonOverlap</a>;</div>
|
|
422
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div>
|
|
423
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> }</div>
|
|
421
424
|
</div><!-- fragment -->
|
|
422
425
|
</div>
|
|
423
426
|
</div>
|
|
@@ -447,12 +450,12 @@ Friends</h2></td></tr>
|
|
|
447
450
|
<p>Compute all possible locations according to offset and number-stride pairs. </p>
|
|
448
451
|
<p>Compute all possible locations according to offset and number-stride pairs. </p>
|
|
449
452
|
|
|
450
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
451
|
-
<div class="fragment"><div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
453
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00249">249</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
454
|
+
<div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> {</div>
|
|
455
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
|
|
456
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>());</div>
|
|
457
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">return</span> result;</div>
|
|
458
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> }</div>
|
|
456
459
|
</div><!-- fragment -->
|
|
457
460
|
</div>
|
|
458
461
|
</div>
|
|
@@ -487,11 +490,11 @@ Friends</h2></td></tr>
|
|
|
487
490
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() && <span class="stringliteral">"not a constant offset"</span>);</div>
|
|
488
491
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  </div>
|
|
489
492
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
|
|
490
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#
|
|
493
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i >= 0; i--)</div>
|
|
491
494
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div>
|
|
492
495
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// (2) %arrayidx = getelementptr inbounds [10 x i8], [10 x i8]* %b, i64 0, i64 8</span></div>
|
|
493
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#
|
|
494
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</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> = <a class="code" href="classSVF_1_1AccessPath.html#
|
|
496
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first->getValue();</div>
|
|
497
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
|
|
495
498
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> && <span class="stringliteral">"this GepStmt comes from ExternalAPI cannot call this api"</span>);</div>
|
|
496
499
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type2 = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</div>
|
|
497
500
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrType = SVFUtil::dyn_cast<SVFArrayType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
@@ -544,45 +547,45 @@ Friends</h2></td></tr>
|
|
|
544
547
|
<p>Return accumulated constant offset</p>
|
|
545
548
|
<p>"value" is the offset variable (must be a constant) "type" is the location where we want to compute offset Given a vector: [(value1,type1), (value2,type2), (value3,type3)] totalConstOffset = flattenOffset(value1,type1) * flattenOffset(value2,type2) + flattenOffset(value3,type3) For a pointer type (e.g., t1 is PointerType), we will retrieve the pointee type and times the offset, i.e., getElementNum(t1) X off1 %5 = getelementptr inbounds struct.Student, struct.Student* %4, i64 1 value1: i64 1 type1: struct.Student* computeConstantOffset = 32 %6 = getelementptr inbounds struct.Student, struct.Student* %5, i32 0, i32 1 value1: i32 0 type1: struct.Student* value2: i32 1 type2: struct.Student = type { struct.inner, [10 x [3 x i8]] } computeConstantOffset = 2 %7 = getelementptr inbounds [10 x [3 x i8]], [10 x [3 x i8]]* %6, i64 0, i64 3 value1: i64 0 type1: [10 x [3 x i8]]* value2: i64 3 type2: [10 x [3 x i8]] computeConstantOffset = 9 %8 = getelementptr inbounds [3 x i8], [3 x i8]* %7, i64 0, i64 2 value1: i64 0 type1: [3 x i8]* value2: i64 2 type2: [3 x i8] computeConstantOffset = 2 </p>
|
|
546
549
|
|
|
547
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
548
|
-
<div class="fragment"><div class="line"><a name="
|
|
549
|
-
<div class="line"><a name="
|
|
550
|
-
<div class="line"><a name="
|
|
551
|
-
<div class="line"><a name="
|
|
552
|
-
<div class="line"><a name="
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
550
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00207">207</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
551
|
+
<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> {</div>
|
|
552
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
|
|
553
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() && <span class="stringliteral">"not a constant offset"</span>);</div>
|
|
554
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
|
555
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.empty())</div>
|
|
556
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
|
|
557
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
|
558
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
|
|
559
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i >= 0; i--)</div>
|
|
560
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div>
|
|
561
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first->getValue();</div>
|
|
562
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
|
|
563
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* op = SVFUtil::dyn_cast<SVFConstantInt>(value);</div>
|
|
564
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  assert(op && <span class="stringliteral">"not a constant offset?"</span>);</div>
|
|
565
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
|
|
566
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div>
|
|
567
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  totalConstOffset += op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
568
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">continue</span>;</div>
|
|
569
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div>
|
|
570
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
|
571
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
572
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  totalConstOffset += op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * <a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty->getPtrElementType());</div>
|
|
573
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">else</span></div>
|
|
574
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div>
|
|
575
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
576
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >= 0)</div>
|
|
577
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div>
|
|
578
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
|
|
579
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
|
|
580
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
581
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  totalConstOffset += flattenOffset;</div>
|
|
582
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div>
|
|
583
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">else</span></div>
|
|
584
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
585
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> totalConstOffset;</div>
|
|
588
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div>
|
|
586
589
|
</div><!-- fragment -->
|
|
587
590
|
</div>
|
|
588
591
|
</div>
|
|
@@ -603,24 +606,24 @@ Friends</h2></td></tr>
|
|
|
603
606
|
|
|
604
607
|
<p>Dump location set. </p>
|
|
605
608
|
|
|
606
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
607
|
-
<div class="fragment"><div class="line"><a name="
|
|
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="
|
|
614
|
-
<div class="line"><a name="
|
|
615
|
-
<div class="line"><a name="
|
|
616
|
-
<div class="line"><a name="
|
|
617
|
-
<div class="line"><a name="
|
|
618
|
-
<div class="line"><a name="
|
|
619
|
-
<div class="line"><a name="
|
|
620
|
-
<div class="line"><a name="
|
|
621
|
-
<div class="line"><a name="
|
|
622
|
-
<div class="line"><a name="
|
|
623
|
-
<div class="line"><a name="
|
|
609
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00312">312</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
610
|
+
<div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> {</div>
|
|
611
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
612
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  std::stringstream rawstr(str);</div>
|
|
613
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
|
614
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  rawstr << <span class="stringliteral">"AccessPath\tField_Index: "</span> << <a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
|
|
615
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  rawstr << <span class="stringliteral">",\tNum-Stride: {"</span>;</div>
|
|
616
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& vec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
|
|
617
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  IdxOperandPairs::const_iterator it = vec.begin();</div>
|
|
618
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  IdxOperandPairs::const_iterator eit = vec.end();</div>
|
|
619
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
620
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  {</div>
|
|
621
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it->second;</div>
|
|
622
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  rawstr << <span class="stringliteral">" (Svf var: "</span> << it->first-><a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() << <span class="stringliteral">", Iter type: "</span> << *ty << <span class="stringliteral">")"</span>;</div>
|
|
623
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  }</div>
|
|
624
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  rawstr << <span class="stringliteral">" }\n"</span>;</div>
|
|
625
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
626
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> }</div>
|
|
624
627
|
</div><!-- fragment -->
|
|
625
628
|
</div>
|
|
626
629
|
</div>
|
|
@@ -704,8 +707,8 @@ Friends</h2></td></tr>
|
|
|
704
707
|
</div><!-- fragment -->
|
|
705
708
|
</div>
|
|
706
709
|
</div>
|
|
707
|
-
<a id="
|
|
708
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
710
|
+
<a id="a586c71842e3e4487921aa3384ce9d025"></a>
|
|
711
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a586c71842e3e4487921aa3384ce9d025">◆ </a></span>getIdxOperandPairVec()</h2>
|
|
709
712
|
|
|
710
713
|
<div class="memitem">
|
|
711
714
|
<div class="memproto">
|
|
@@ -714,7 +717,7 @@ Friends</h2></td></tr>
|
|
|
714
717
|
<td class="mlabels-left">
|
|
715
718
|
<table class="memname">
|
|
716
719
|
<tr>
|
|
717
|
-
<td class="memname">const <a class="el" href="classSVF_1_1AccessPath.html#
|
|
720
|
+
<td class="memname">const <a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& SVF::AccessPath::getIdxOperandPairVec </td>
|
|
718
721
|
<td>(</td>
|
|
719
722
|
<td class="paramname"></td><td>)</td>
|
|
720
723
|
<td> const</td>
|
|
@@ -729,11 +732,59 @@ Friends</h2></td></tr>
|
|
|
729
732
|
|
|
730
733
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00106">106</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
731
734
|
<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div>
|
|
732
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#
|
|
735
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>;</div>
|
|
733
736
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
734
737
|
</div><!-- fragment -->
|
|
735
738
|
</div>
|
|
736
739
|
</div>
|
|
740
|
+
<a id="a1f279344b4061838d7b3498631bc907c"></a>
|
|
741
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a1f279344b4061838d7b3498631bc907c">◆ </a></span>getStructFieldOffset()</h2>
|
|
742
|
+
|
|
743
|
+
<div class="memitem">
|
|
744
|
+
<div class="memproto">
|
|
745
|
+
<table class="memname">
|
|
746
|
+
<tr>
|
|
747
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> AccessPath::getStructFieldOffset </td>
|
|
748
|
+
<td>(</td>
|
|
749
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> * </td>
|
|
750
|
+
<td class="paramname"><em>idxOperandVar</em>, </td>
|
|
751
|
+
</tr>
|
|
752
|
+
<tr>
|
|
753
|
+
<td class="paramkey"></td>
|
|
754
|
+
<td></td>
|
|
755
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1SVFStructType.html">SVFStructType</a> * </td>
|
|
756
|
+
<td class="paramname"><em>idxOperandType</em> </td>
|
|
757
|
+
</tr>
|
|
758
|
+
<tr>
|
|
759
|
+
<td></td>
|
|
760
|
+
<td>)</td>
|
|
761
|
+
<td></td><td> const</td>
|
|
762
|
+
</tr>
|
|
763
|
+
</table>
|
|
764
|
+
</div><div class="memdoc">
|
|
765
|
+
|
|
766
|
+
<p>Return byte offset from the beginning of the structure to the field where it is located for struct type. </p>
|
|
767
|
+
<p>Return byte offset from the beginning of the structure to the field where it is located for struct type </p>
|
|
768
|
+
|
|
769
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00162">162</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
770
|
+
<div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div>
|
|
771
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* idxValue = idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>();</div>
|
|
772
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structByteOffset = 0;</div>
|
|
773
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</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>(idxValue))</div>
|
|
774
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  {</div>
|
|
775
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField < (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op->getSExtValue(); ++structField)</div>
|
|
776
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  {</div>
|
|
777
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = idxOperandType-><a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-><a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()[structField];</div>
|
|
778
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  structByteOffset += idxOperandType-><a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-><a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx)-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
779
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div>
|
|
780
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> structByteOffset;</div>
|
|
781
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
|
782
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">else</span></div>
|
|
783
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"struct type can only pair with constant idx"</span>);</div>
|
|
784
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div>
|
|
785
|
+
</div><!-- fragment -->
|
|
786
|
+
</div>
|
|
787
|
+
</div>
|
|
737
788
|
<a id="a461fe4cddd5d8c8b7017588038c093de"></a>
|
|
738
789
|
<h2 class="memtitle"><span class="permalink"><a href="#a461fe4cddd5d8c8b7017588038c093de">◆ </a></span>intersects()</h2>
|
|
739
790
|
|
|
@@ -787,7 +838,7 @@ Friends</h2></td></tr>
|
|
|
787
838
|
|
|
788
839
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00049">49</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
789
840
|
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div>
|
|
790
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it : <a class="code" href="classSVF_1_1AccessPath.html#
|
|
841
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it : <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>)</div>
|
|
791
842
|
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
|
|
792
843
|
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span>(SVFUtil::isa<SVFConstantInt>(it.first->getValue()) == <span class="keyword">false</span>)</div>
|
|
793
844
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
@@ -815,15 +866,15 @@ Friends</h2></td></tr>
|
|
|
815
866
|
|
|
816
867
|
<p>Overload operators. </p>
|
|
817
868
|
|
|
818
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
819
|
-
<div class="fragment"><div class="line"><a name="
|
|
820
|
-
<div class="line"><a name="
|
|
821
|
-
<div class="line"><a name="
|
|
822
|
-
<div class="line"><a name="
|
|
823
|
-
<div class="line"><a name="
|
|
824
|
-
<div class="line"><a name="
|
|
825
|
-
<div class="line"><a name="
|
|
826
|
-
<div class="line"><a name="
|
|
869
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00256">256</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
870
|
+
<div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> {</div>
|
|
871
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
|
|
872
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  ap.fldIdx += <a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
|
|
873
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.getIdxOperandPairVec())</div>
|
|
874
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  ap.addOffsetVarAndGepTypePair(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
|
|
875
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
|
|
876
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> ap;</div>
|
|
877
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }</div>
|
|
827
878
|
</div><!-- fragment -->
|
|
828
879
|
</div>
|
|
829
880
|
</div>
|
|
@@ -843,29 +894,29 @@ Friends</h2></td></tr>
|
|
|
843
894
|
</table>
|
|
844
895
|
</div><div class="memdoc">
|
|
845
896
|
|
|
846
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
847
|
-
<div class="fragment"><div class="line"><a name="
|
|
848
|
-
<div class="line"><a name="
|
|
849
|
-
<div class="line"><a name="
|
|
850
|
-
<div class="line"><a name="
|
|
851
|
-
<div class="line"><a name="
|
|
852
|
-
<div class="line"><a name="
|
|
853
|
-
<div class="line"><a name="
|
|
854
|
-
<div class="line"><a name="
|
|
855
|
-
<div class="line"><a name="
|
|
856
|
-
<div class="line"><a name="
|
|
857
|
-
<div class="line"><a name="
|
|
858
|
-
<div class="line"><a name="
|
|
859
|
-
<div class="line"><a name="
|
|
860
|
-
<div class="line"><a name="
|
|
861
|
-
<div class="line"><a name="
|
|
862
|
-
<div class="line"><a name="
|
|
863
|
-
<div class="line"><a name="
|
|
864
|
-
<div class="line"><a name="
|
|
865
|
-
<div class="line"><a name="
|
|
866
|
-
<div class="line"><a name="
|
|
867
|
-
<div class="line"><a name="
|
|
868
|
-
<div class="line"><a name="
|
|
897
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00266">266</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
898
|
+
<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div>
|
|
899
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
|
|
900
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> < rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
|
|
901
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">else</span></div>
|
|
902
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div>
|
|
903
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& pairVec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
|
|
904
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
|
|
905
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
|
|
906
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">return</span> (pairVec.size() < rhsPairVec.size());</div>
|
|
907
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">else</span></div>
|
|
908
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div>
|
|
909
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  IdxOperandPairs::const_iterator it = pairVec.begin();</div>
|
|
910
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
|
|
911
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">for</span> (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
|
|
912
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
913
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> (*it) < (*rhsIt);</div>
|
|
914
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div>
|
|
915
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
|
|
916
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
917
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
918
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div>
|
|
919
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> }</div>
|
|
869
920
|
</div><!-- fragment -->
|
|
870
921
|
</div>
|
|
871
922
|
</div>
|
|
@@ -896,7 +947,7 @@ Friends</h2></td></tr>
|
|
|
896
947
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00083">83</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
897
948
|
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div>
|
|
898
949
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> = rhs.fldIdx;</div>
|
|
899
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1AccessPath.html#
|
|
950
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a> = rhs.getIdxOperandPairVec();</div>
|
|
900
951
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
901
952
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
|
902
953
|
</div><!-- fragment -->
|
|
@@ -929,7 +980,7 @@ Friends</h2></td></tr>
|
|
|
929
980
|
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00089">89</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
930
981
|
<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div>
|
|
931
982
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> == rhs.fldIdx &&</div>
|
|
932
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  this-><a class="code" href="classSVF_1_1AccessPath.html#
|
|
983
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  this-><a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a> == rhs.idxOperandPairs;</div>
|
|
933
984
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div>
|
|
934
985
|
</div><!-- fragment -->
|
|
935
986
|
</div>
|
|
@@ -1061,12 +1112,12 @@ Friends</h2></td></tr>
|
|
|
1061
1112
|
|
|
1062
1113
|
<p>Accumulated Constant Offsets. </p>
|
|
1063
1114
|
|
|
1064
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#
|
|
1115
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00168">168</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
1065
1116
|
|
|
1066
1117
|
</div>
|
|
1067
1118
|
</div>
|
|
1068
|
-
<a id="
|
|
1069
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
1119
|
+
<a id="a47855e8ab3bba692f443903b58618229"></a>
|
|
1120
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a47855e8ab3bba692f443903b58618229">◆ </a></span>idxOperandPairs</h2>
|
|
1070
1121
|
|
|
1071
1122
|
<div class="memitem">
|
|
1072
1123
|
<div class="memproto">
|
|
@@ -1075,7 +1126,7 @@ Friends</h2></td></tr>
|
|
|
1075
1126
|
<td class="mlabels-left">
|
|
1076
1127
|
<table class="memname">
|
|
1077
1128
|
<tr>
|
|
1078
|
-
<td class="memname"><a class="el" href="classSVF_1_1AccessPath.html#
|
|
1129
|
+
<td class="memname"><a class="el" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a> SVF::AccessPath::idxOperandPairs</td>
|
|
1079
1130
|
</tr>
|
|
1080
1131
|
</table>
|
|
1081
1132
|
</td>
|
|
@@ -1085,9 +1136,9 @@ Friends</h2></td></tr>
|
|
|
1085
1136
|
</table>
|
|
1086
1137
|
</div><div class="memdoc">
|
|
1087
1138
|
|
|
1088
|
-
<p>a vector of actual offset in the form of <<a class="el" href="namespaceSVF.html" title="for isBitcode">SVF</a> Var, iterator type>
|
|
1139
|
+
<p>a vector of actual offset in the form of <<a class="el" href="namespaceSVF.html" title="for isBitcode">SVF</a> Var, iterator type> </p>
|
|
1089
1140
|
|
|
1090
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#
|
|
1141
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8h_source.html#l00169">169</a> of file <a class="el" href="AccessPath_8h_source.html">AccessPath.h</a>.</p>
|
|
1091
1142
|
|
|
1092
1143
|
</div>
|
|
1093
1144
|
</div>
|
|
@@ -1104,9 +1155,9 @@ Friends</h2></td></tr>
|
|
|
1104
1155
|
<div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
1105
1156
|
<div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00351">SVFType.h:351</a></div></div>
|
|
1106
1157
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
|
|
1107
|
-
<div class="ttc" id="
|
|
1158
|
+
<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>
|
|
1108
1159
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
1109
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
1160
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00249">AccessPath.cpp:249</a></div></div>
|
|
1110
1161
|
<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>
|
|
1111
1162
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">SVF::AccessPath::Same</a></div><div class="ttdeci">@ Same</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
1112
1163
|
<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#l00181">SymbolTableInfo.cpp:181</a></div></div>
|
|
@@ -1121,15 +1172,17 @@ Friends</h2></td></tr>
|
|
|
1121
1172
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">SVF::AccessPath::NonOverlap</a></div><div class="ttdeci">@ NonOverlap</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
1122
1173
|
<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>
|
|
1123
1174
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div></div>
|
|
1175
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a04ca154a70f40999a6a28c505bfd942d"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">SVF::AccessPath::IdxOperandPairs</a></div><div class="ttdeci">std::vector< IdxOperandPair > IdxOperandPairs</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00065">AccessPath.h:65</a></div></div>
|
|
1176
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a47855e8ab3bba692f443903b58618229"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">SVF::AccessPath::idxOperandPairs</a></div><div class="ttdeci">IdxOperandPairs idxOperandPairs</div><div class="ttdoc">a vector of actual offset in the form of <SVF Var, iterator type></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00169">AccessPath.h:169</a></div></div>
|
|
1124
1177
|
<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#l00081">SymbolTableInfo.cpp:81</a></div></div>
|
|
1178
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a586c71842e3e4487921aa3384ce9d025"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">SVF::AccessPath::getIdxOperandPairVec</a></div><div class="ttdeci">const IdxOperandPairs & getIdxOperandPairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
|
|
1179
|
+
<div class="ttc" id="aclassSVF_1_1StInfo_html_aaf05447c20c9f90eea64ab6e88d6ab05"><div class="ttname"><a href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">SVF::StInfo::getFlattenedFieldIdxVec</a></div><div class="ttdeci">std::vector< u32_t > & getFlattenedFieldIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00180">SVFType.h:180</a></div></div>
|
|
1125
1180
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
|
|
1126
1181
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">SVF::AccessPath::Superset</a></div><div class="ttdeci">@ Superset</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
1127
1182
|
<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>
|
|
1128
1183
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
1129
1184
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a403312192a96a9fd5e7d071481592a7f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">SVF::AccessPath::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="AccessPath_8cpp_source.html#l00049">AccessPath.cpp:49</a></div></div>
|
|
1130
|
-
<div class="ttc" id="
|
|
1131
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00165">AccessPath.h:165</a></div></div>
|
|
1132
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a37e181504f5a1b6aa32d7bb1519ea709"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a37e181504f5a1b6aa32d7bb1519ea709">SVF::AccessPath::offsetVarAndGepTypePairs</a></div><div class="ttdeci">IdxVarAndGepTypePairs offsetVarAndGepTypePairs</div><div class="ttdoc">a vector of actual offset in the form of <SVF Var, iterator type>s</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00167">AccessPath.h:167</a></div></div>
|
|
1185
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00168">AccessPath.h:168</a></div></div>
|
|
1133
1186
|
<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>
|
|
1134
1187
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a055697f565cb9d73b41110090fe50159"><div class="ttname"><a href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">SVF::StInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(u32_t fldIdx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00026">SVFValue.cpp:26</a></div></div>
|
|
1135
1188
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">SVF::AccessPath::Subset</a></div><div class="ttdeci">@ Subset</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|