svf-tools 1.0.890 → 1.0.892
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/AbstractExecution_8cpp_source.html +451 -450
- package/SVF-doxygen/html/AbstractExecution_8h_source.html +11 -11
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +150 -147
- package/SVF-doxygen/html/AccessPath_8h_source.html +6 -6
- package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +426 -425
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CppUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +43 -44
- package/SVF-doxygen/html/ICFGWTO_8h_source.html +4 -4
- package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +556 -556
- package/SVF-doxygen/html/LLVMModule_8h_source.html +15 -15
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +552 -525
- package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +55 -52
- package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +3 -3
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +828 -827
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +20 -20
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/WTO_8h.html +1 -0
- package/SVF-doxygen/html/WTO_8h_source.html +812 -811
- package/SVF-doxygen/html/ae_8cpp.html +46 -47
- package/SVF-doxygen/html/ae_8cpp_source.html +46 -47
- package/SVF-doxygen/html/classSVF_1_1AEAPI.html +432 -431
- package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +22 -22
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +136 -133
- package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.html +82 -81
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +43 -44
- package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +538 -538
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +792 -791
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
- package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1WTO.html +253 -253
- package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +21 -21
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +61 -61
- package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +115 -115
- package/SVF-doxygen/html/classSVF_1_1WTONode.html +31 -31
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +31 -31
- package/SVF-doxygen/html/globals_vars.html +3 -3
- package/SVF-doxygen/html/globals_z.html +3 -3
- package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +529 -483
- package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +2 -2
- package/SVF-doxygen/html/namespacemembers_func_r.html +3 -0
- package/SVF-doxygen/html/namespacemembers_r.html +3 -0
- package/SVF-doxygen/html/search/all_11.js +54 -53
- package/SVF-doxygen/html/search/all_12.js +570 -570
- package/SVF-doxygen/html/search/all_13.js +207 -207
- package/SVF-doxygen/html/search/all_14.js +70 -70
- package/SVF-doxygen/html/search/all_15.js +176 -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 +26 -26
- package/SVF-doxygen/html/search/all_1a.js +180 -180
- package/SVF-doxygen/html/search/classes_0.js +29 -29
- package/SVF-doxygen/html/search/classes_1.js +12 -12
- package/SVF-doxygen/html/search/classes_10.js +74 -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 +73 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +8 -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 +38 -38
- package/SVF-doxygen/html/search/classes_8.js +59 -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 +4 -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 +4 -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 +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +4 -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 +15 -15
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
- 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 +8 -8
- 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 +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 +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
- package/SVF-doxygen/html/search/files_0.js +16 -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 +53 -53
- 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 +10 -10
- package/SVF-doxygen/html/search/files_7.js +17 -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 +62 -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 +369 -369
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -139
- package/SVF-doxygen/html/search/functions_12.js +299 -299
- package/SVF-doxygen/html/search/functions_13.js +73 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +72 -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 +180 -180
- package/SVF-doxygen/html/search/functions_2.js +95 -95
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +84 -84
- package/SVF-doxygen/html/search/functions_5.js +57 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +863 -863
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +439 -439
- 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 +25 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +36 -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 +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 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +63 -63
- 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 +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 +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 +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 +177 -177
- package/SVF-doxygen/html/search/variables_1.js +76 -76
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +46 -46
- 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 +41 -41
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- 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 +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +79 -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 +45 -45
- package/SVF-doxygen/html/search/variables_d.js +57 -57
- 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_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +12 -12
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +12 -12
- package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/Graphs/WTO.h +1 -0
- package/svf/lib/AE/Svfexe/AbstractExecution.cpp +1 -0
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +1 -0
- package/svf/lib/AE/Svfexe/ICFGSimplification.cpp +1 -2
- package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +1 -0
- package/svf/lib/MemoryModel/AccessPath.cpp +4 -1
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +2 -0
- package/svf-llvm/lib/LLVMModule.cpp +3 -4
- package/svf-llvm/lib/LLVMUtil.cpp +29 -2
- package/svf-llvm/lib/SVFIRBuilder.cpp +1 -1
- package/svf-llvm/tools/AE/ae.cpp +1 -2
|
@@ -277,25 +277,25 @@ Private Attributes</h2></td></tr>
|
|
|
277
277
|
</table>
|
|
278
278
|
</div><div class="memdoc">
|
|
279
279
|
|
|
280
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
281
|
-
<div class="fragment"><div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="
|
|
291
|
-
<div class="line"><a name="
|
|
292
|
-
<div class="line"><a name="
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
280
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00113">113</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
281
|
+
<div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> {</div>
|
|
282
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</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_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>)</div>
|
|
283
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div>
|
|
284
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
285
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
|
|
286
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</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_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>)</div>
|
|
287
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
|
288
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
289
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
|
290
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</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_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
291
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div>
|
|
292
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
293
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div>
|
|
294
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</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_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
295
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div>
|
|
296
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
|
|
297
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div>
|
|
298
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
|
|
299
299
|
</div><!-- fragment -->
|
|
300
300
|
</div>
|
|
301
301
|
</div>
|
|
@@ -362,67 +362,67 @@ Private Attributes</h2></td></tr>
|
|
|
362
362
|
for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4bytes * %var1</h2>
|
|
363
363
|
<p>Therefore the final byteoffset is [8+4*var1.lb(), 8+4*var1.ub()] </p>
|
|
364
364
|
|
|
365
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
366
|
-
<div class="fragment"><div class="line"><a name="
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="
|
|
389
|
-
<div class="line"><a name="
|
|
390
|
-
<div class="line"><a name="
|
|
391
|
-
<div class="line"><a name="
|
|
392
|
-
<div class="line"><a name="
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
365
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00275">275</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
366
|
+
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div>
|
|
367
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
368
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</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>
|
|
369
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0); <span class="comment">// Initialize the result interval 'res' to 0.</span></div>
|
|
370
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// Loop through the offsetVarAndGepTypePairVec in reverse order.</span></div>
|
|
371
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</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>
|
|
372
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
|
373
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* idxOperandVar =</div>
|
|
374
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first;</div>
|
|
375
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* idxOperandType =</div>
|
|
376
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].second;</div>
|
|
377
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">// calculating Array/Ptr by elemByteSize * indexOperand</span></div>
|
|
378
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFArrayType>(idxOperandType) || SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
379
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div>
|
|
380
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> elemByteSize = 1;</div>
|
|
381
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</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>
|
|
382
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  elemByteSize = arrOperandType->getTypeOfElement()->getByteSize();</div>
|
|
383
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
384
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</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>
|
|
385
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">else</span></div>
|
|
386
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"idxOperandType must be ArrType or PtrType"</span>);</div>
|
|
387
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</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>
|
|
388
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  {</div>
|
|
389
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</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>
|
|
390
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
391
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, lb);</div>
|
|
392
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div>
|
|
393
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">else</span></div>
|
|
394
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
395
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> idx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>());</div>
|
|
396
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[idx];</div>
|
|
397
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
398
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
399
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">else</span></div>
|
|
400
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
401
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// if lb or ub is negative number, set 0.</span></div>
|
|
402
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// if lb or ub is positive number, guarantee lb/ub * elemByteSize <= MaxFieldLimit</span></div>
|
|
403
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</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#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < 0) ? 0 :</div>
|
|
404
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
405
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
406
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</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#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < 0) ? 0 :</div>
|
|
407
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
408
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>()) ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
409
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
410
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div>
|
|
411
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div>
|
|
412
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
413
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// Process struct subtype by calculating the byte offset from beginning to the field of struct</span></div>
|
|
414
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</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>
|
|
415
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div>
|
|
416
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</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>
|
|
417
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  idxOperandVar, structOperandType));</div>
|
|
418
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div>
|
|
419
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">else</span></div>
|
|
420
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div>
|
|
421
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"gep type pair only support arr/ptr/struct"</span>);</div>
|
|
422
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div>
|
|
423
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div>
|
|
424
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte offset as an IntervalValue.</span></div>
|
|
425
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> }</div>
|
|
426
426
|
</div><!-- fragment -->
|
|
427
427
|
</div>
|
|
428
428
|
</div>
|
|
@@ -514,26 +514,26 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
514
514
|
|
|
515
515
|
<p>Return the field address given a pointer points to a struct object and an offset. </p>
|
|
516
516
|
|
|
517
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
518
|
-
<div class="fragment"><div class="line"><a name="
|
|
519
|
-
<div class="line"><a name="
|
|
520
|
-
<div class="line"><a name="
|
|
521
|
-
<div class="line"><a name="
|
|
522
|
-
<div class="line"><a name="
|
|
523
|
-
<div class="line"><a name="
|
|
524
|
-
<div class="line"><a name="
|
|
525
|
-
<div class="line"><a name="
|
|
526
|
-
<div class="line"><a name="
|
|
527
|
-
<div class="line"><a name="
|
|
528
|
-
<div class="line"><a name="
|
|
529
|
-
<div class="line"><a name="
|
|
530
|
-
<div class="line"><a name="
|
|
531
|
-
<div class="line"><a name="
|
|
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="
|
|
517
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00232">232</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
518
|
+
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> {</div>
|
|
519
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(pointer).empty());</div>
|
|
520
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(pointer);</div>
|
|
521
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> ret;</div>
|
|
522
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
523
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div>
|
|
524
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  int64_t baseObj = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
|
|
525
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">if</span> (baseObj == 0)</div>
|
|
526
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div>
|
|
527
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  ret.insert(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(0));</div>
|
|
528
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">continue</span>;</div>
|
|
529
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
|
|
530
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  assert(SVFUtil::isa<ObjVar>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(baseObj)) && <span class="stringliteral">"Fail to get the base object address!"</span>);</div>
|
|
531
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
532
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">initSVFVar</a>(gepObj);</div>
|
|
533
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  ret.insert(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(gepObj));</div>
|
|
534
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
535
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> ret;</div>
|
|
536
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> }</div>
|
|
537
537
|
</div><!-- fragment -->
|
|
538
538
|
</div>
|
|
539
539
|
</div>
|
|
@@ -596,74 +596,74 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
596
596
|
</dl>
|
|
597
597
|
<dl class="section return"><dt>Returns</dt><dd>A pair of APOffset values representing the offset range. </dd></dl>
|
|
598
598
|
|
|
599
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
600
|
-
<div class="fragment"><div class="line"><a name="
|
|
601
|
-
<div class="line"><a name="
|
|
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="
|
|
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="
|
|
624
|
-
<div class="line"><a name="
|
|
625
|
-
<div class="line"><a name="
|
|
626
|
-
<div class="line"><a name="
|
|
627
|
-
<div class="line"><a name="
|
|
628
|
-
<div class="line"><a name="
|
|
629
|
-
<div class="line"><a name="
|
|
630
|
-
<div class="line"><a name="
|
|
631
|
-
<div class="line"><a name="
|
|
632
|
-
<div class="line"><a name="
|
|
633
|
-
<div class="line"><a name="
|
|
634
|
-
<div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="
|
|
646
|
-
<div class="line"><a name="
|
|
647
|
-
<div class="line"><a name="
|
|
648
|
-
<div class="line"><a name="
|
|
649
|
-
<div class="line"><a name="
|
|
650
|
-
<div class="line"><a name="
|
|
651
|
-
<div class="line"><a name="
|
|
652
|
-
<div class="line"><a name="
|
|
653
|
-
<div class="line"><a name="
|
|
654
|
-
<div class="line"><a name="
|
|
655
|
-
<div class="line"><a name="
|
|
656
|
-
<div class="line"><a name="
|
|
657
|
-
<div class="line"><a name="
|
|
658
|
-
<div class="line"><a name="
|
|
659
|
-
<div class="line"><a name="
|
|
660
|
-
<div class="line"><a name="
|
|
661
|
-
<div class="line"><a name="
|
|
662
|
-
<div class="line"><a name="
|
|
663
|
-
<div class="line"><a name="
|
|
664
|
-
<div class="line"><a name="
|
|
665
|
-
<div class="line"><a name="
|
|
666
|
-
<div class="line"><a name="
|
|
599
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00345">345</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
600
|
+
<div class="fragment"><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> {</div>
|
|
601
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
602
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</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>
|
|
603
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0);</div>
|
|
604
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</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>
|
|
605
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div>
|
|
606
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">AccessPath::IdxOperandPair</a> IdxVarAndType =</div>
|
|
607
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i];</div>
|
|
608
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value =</div>
|
|
609
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first->getValue();</div>
|
|
610
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</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>
|
|
611
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// idxLb/Ub is the flattened offset generated by the current OffsetVarAndGepTypePair</span></div>
|
|
612
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxLb;</div>
|
|
613
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxUb;</div>
|
|
614
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">// get lb and ub of the index value</span></div>
|
|
615
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</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>
|
|
616
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  idxLb = idxUb = constInt->getSExtValue();</div>
|
|
617
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">else</span></div>
|
|
618
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  {</div>
|
|
619
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxItv = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(value)];</div>
|
|
620
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">if</span> (idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
|
|
621
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  idxLb = idxUb = 0;</div>
|
|
622
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">else</span></div>
|
|
623
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div>
|
|
624
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  idxLb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
|
|
625
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  idxUb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
|
|
626
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div>
|
|
627
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div>
|
|
628
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">// for pointer type, flattened index = elemNum * idx</span></div>
|
|
629
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
630
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div>
|
|
631
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">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>
|
|
632
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</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>
|
|
633
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</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>
|
|
634
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div>
|
|
635
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="comment">// for array or struct, get flattened index from SymbolTable Info</span></div>
|
|
636
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">else</span></div>
|
|
637
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  {</div>
|
|
638
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">Options::ModelArrays</a>())</div>
|
|
639
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div>
|
|
640
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
|
|
641
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  -><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
642
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  -><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
643
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</span> (so.empty() || idxUb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() || idxLb < 0)</div>
|
|
644
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div>
|
|
645
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  idxLb = idxUb = 0;</div>
|
|
646
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
|
|
647
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">else</span></div>
|
|
648
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div>
|
|
649
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</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>
|
|
650
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxLb);</div>
|
|
651
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</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>
|
|
652
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxUb);</div>
|
|
653
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  }</div>
|
|
654
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div>
|
|
655
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">else</span></div>
|
|
656
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  idxLb = idxUb = 0;</div>
|
|
657
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div>
|
|
658
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(idxLb, idxUb);</div>
|
|
659
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div>
|
|
660
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  res.meet_with(<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>
|
|
661
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span> (res.isBottom())</div>
|
|
662
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  {</div>
|
|
663
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
664
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div>
|
|
665
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> res;</div>
|
|
666
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div>
|
|
667
667
|
</div><!-- fragment -->
|
|
668
668
|
</div>
|
|
669
669
|
</div>
|
|
@@ -751,8 +751,9 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
751
751
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">else</span></div>
|
|
752
752
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  {</div>
|
|
753
753
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support"</span>);</div>
|
|
754
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
755
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
|
|
754
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  abort();</div>
|
|
755
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
|
|
756
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
|
|
756
757
|
</div><!-- fragment -->
|
|
757
758
|
</div>
|
|
758
759
|
</div>
|
|
@@ -855,36 +856,36 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
855
856
|
</dl>
|
|
856
857
|
<p>constant data</p>
|
|
857
858
|
|
|
858
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
859
|
-
<div class="fragment"><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="
|
|
869
|
-
<div class="line"><a name="
|
|
870
|
-
<div class="line"><a name="
|
|
871
|
-
<div class="line"><a name="
|
|
872
|
-
<div class="line"><a name="
|
|
873
|
-
<div class="line"><a name="
|
|
874
|
-
<div class="line"><a name="
|
|
875
|
-
<div class="line"><a name="
|
|
876
|
-
<div class="line"><a name="
|
|
877
|
-
<div class="line"><a name="
|
|
878
|
-
<div class="line"><a name="
|
|
879
|
-
<div class="line"><a name="
|
|
880
|
-
<div class="line"><a name="
|
|
881
|
-
<div class="line"><a name="
|
|
882
|
-
<div class="line"><a name="
|
|
883
|
-
<div class="line"><a name="
|
|
884
|
-
<div class="line"><a name="
|
|
885
|
-
<div class="line"><a name="
|
|
886
|
-
<div class="line"><a name="
|
|
887
|
-
<div class="line"><a name="
|
|
859
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00420">420</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
860
|
+
<div class="fragment"><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> {</div>
|
|
861
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
|
|
862
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
863
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div>
|
|
864
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</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>
|
|
865
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</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>
|
|
866
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div>
|
|
867
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</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>
|
|
868
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div>
|
|
869
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordtype">double</span> numeral = (double)consInt->getSExtValue();</div>
|
|
870
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
|
|
871
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div>
|
|
872
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</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>
|
|
873
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
874
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</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>
|
|
875
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
876
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</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>
|
|
877
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
878
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</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>
|
|
879
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
880
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">else</span></div>
|
|
881
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
882
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div>
|
|
883
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">else</span></div>
|
|
884
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
885
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div>
|
|
886
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">else</span></div>
|
|
887
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
888
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> }</div>
|
|
888
889
|
</div><!-- fragment -->
|
|
889
890
|
</div>
|
|
890
891
|
</div>
|
|
@@ -906,22 +907,22 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
906
907
|
|
|
907
908
|
<p>Init <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a>. </p>
|
|
908
909
|
|
|
909
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
910
|
-
<div class="fragment"><div class="line"><a name="
|
|
911
|
-
<div class="line"><a name="
|
|
912
|
-
<div class="line"><a name="
|
|
913
|
-
<div class="line"><a name="
|
|
914
|
-
<div class="line"><a name="
|
|
915
|
-
<div class="line"><a name="
|
|
916
|
-
<div class="line"><a name="
|
|
917
|
-
<div class="line"><a name="
|
|
918
|
-
<div class="line"><a name="
|
|
919
|
-
<div class="line"><a name="
|
|
920
|
-
<div class="line"><a name="
|
|
921
|
-
<div class="line"><a name="
|
|
922
|
-
<div class="line"><a name="
|
|
923
|
-
<div class="line"><a name="
|
|
924
|
-
<div class="line"><a name="
|
|
910
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00452">452</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
911
|
+
<div class="fragment"><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> {</div>
|
|
912
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(varId) || <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ad485a35730353c0e945bc84a034d9e45">inVarToAddrsTable</a>(varId)) <span class="keywordflow">return</span>;</div>
|
|
913
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</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>
|
|
914
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</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>
|
|
915
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
916
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</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>
|
|
917
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div>
|
|
918
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">initObjVar</a>(objVar, varId);</div>
|
|
919
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span>;</div>
|
|
920
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
921
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">else</span></div>
|
|
922
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div>
|
|
923
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not an obj var?"</span>);</div>
|
|
924
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div>
|
|
925
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }</div>
|
|
925
926
|
</div><!-- fragment -->
|
|
926
927
|
</div>
|
|
927
928
|
</div>
|
|
@@ -1105,32 +1106,32 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1105
1106
|
</table>
|
|
1106
1107
|
</div><div class="memdoc">
|
|
1107
1108
|
|
|
1108
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1109
|
-
<div class="fragment"><div class="line"><a name="
|
|
1110
|
-
<div class="line"><a name="
|
|
1111
|
-
<div class="line"><a name="
|
|
1112
|
-
<div class="line"><a name="
|
|
1113
|
-
<div class="line"><a name="
|
|
1114
|
-
<div class="line"><a name="
|
|
1115
|
-
<div class="line"><a name="
|
|
1116
|
-
<div class="line"><a name="
|
|
1117
|
-
<div class="line"><a name="
|
|
1118
|
-
<div class="line"><a name="
|
|
1119
|
-
<div class="line"><a name="
|
|
1120
|
-
<div class="line"><a name="
|
|
1121
|
-
<div class="line"><a name="
|
|
1122
|
-
<div class="line"><a name="
|
|
1123
|
-
<div class="line"><a name="
|
|
1124
|
-
<div class="line"><a name="
|
|
1125
|
-
<div class="line"><a name="
|
|
1126
|
-
<div class="line"><a name="
|
|
1127
|
-
<div class="line"><a name="
|
|
1128
|
-
<div class="line"><a name="
|
|
1129
|
-
<div class="line"><a name="
|
|
1130
|
-
<div class="line"><a name="
|
|
1131
|
-
<div class="line"><a name="
|
|
1132
|
-
<div class="line"><a name="
|
|
1133
|
-
<div class="line"><a name="
|
|
1109
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00133">133</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1110
|
+
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div>
|
|
1111
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>)</div>
|
|
1112
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div>
|
|
1113
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.insert(it);</div>
|
|
1114
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
|
|
1115
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>)</div>
|
|
1116
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div>
|
|
1117
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>.insert(it);</div>
|
|
1118
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
|
|
1119
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &_varToVAddr: <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
1120
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div>
|
|
1121
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.insert(_varToVAddr);</div>
|
|
1122
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
|
|
1123
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &_locToVAddr: <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
1124
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div>
|
|
1125
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.insert(_locToVAddr);</div>
|
|
1126
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
1127
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
|
|
1128
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.clear();</div>
|
|
1129
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>.erase(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->getBlkPtr());</div>
|
|
1130
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#ad2288306aed7301ccd30e55410c7b428">_varToItvVal</a>[<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>
|
|
1131
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#acba74693030fca248521412c552e3dcc">_locToItvVal</a>.clear();</div>
|
|
1132
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.clear();</div>
|
|
1133
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.clear();</div>
|
|
1134
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div>
|
|
1134
1135
|
</div><!-- fragment -->
|
|
1135
1136
|
</div>
|
|
1136
1137
|
</div>
|
|
@@ -1160,39 +1161,39 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1160
1161
|
</table>
|
|
1161
1162
|
</div><div class="memdoc">
|
|
1162
1163
|
|
|
1163
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1164
|
-
<div class="fragment"><div class="line"><a name="
|
|
1165
|
-
<div class="line"><a name="
|
|
1166
|
-
<div class="line"><a name="
|
|
1167
|
-
<div class="line"><a name="
|
|
1168
|
-
<div class="line"><a name="
|
|
1169
|
-
<div class="line"><a name="
|
|
1170
|
-
<div class="line"><a name="
|
|
1171
|
-
<div class="line"><a name="
|
|
1172
|
-
<div class="line"><a name="
|
|
1173
|
-
<div class="line"><a name="
|
|
1174
|
-
<div class="line"><a name="
|
|
1175
|
-
<div class="line"><a name="
|
|
1176
|
-
<div class="line"><a name="
|
|
1177
|
-
<div class="line"><a name="
|
|
1178
|
-
<div class="line"><a name="
|
|
1179
|
-
<div class="line"><a name="
|
|
1180
|
-
<div class="line"><a name="
|
|
1181
|
-
<div class="line"><a name="
|
|
1182
|
-
<div class="line"><a name="
|
|
1183
|
-
<div class="line"><a name="
|
|
1184
|
-
<div class="line"><a name="
|
|
1185
|
-
<div class="line"><a name="
|
|
1186
|
-
<div class="line"><a name="
|
|
1187
|
-
<div class="line"><a name="
|
|
1188
|
-
<div class="line"><a name="
|
|
1189
|
-
<div class="line"><a name="
|
|
1190
|
-
<div class="line"><a name="
|
|
1191
|
-
<div class="line"><a name="
|
|
1192
|
-
<div class="line"><a name="
|
|
1193
|
-
<div class="line"><a name="
|
|
1194
|
-
<div class="line"><a name="
|
|
1195
|
-
<div class="line"><a name="
|
|
1164
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00198">198</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1165
|
+
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
|
|
1166
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
1167
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div>
|
|
1168
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.find(rhsItem.first);</div>
|
|
1169
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.end())</div>
|
|
1170
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
1171
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second)</div>
|
|
1172
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div>
|
|
1173
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
|
|
1174
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div>
|
|
1175
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  lhsIter->second = rhsItem.second;</div>
|
|
1176
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">break</span>;</div>
|
|
1177
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
1178
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
1179
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
1180
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
|
1181
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
1182
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div>
|
|
1183
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.find(rhsItem.first);</div>
|
|
1184
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.end())</div>
|
|
1185
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  {</div>
|
|
1186
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second)</div>
|
|
1187
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div>
|
|
1188
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
|
|
1189
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div>
|
|
1190
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  lhsIter->second = rhsItem.second;</div>
|
|
1191
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">break</span>;</div>
|
|
1192
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div>
|
|
1193
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div>
|
|
1194
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
1195
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  }</div>
|
|
1196
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> }</div>
|
|
1196
1197
|
</div><!-- fragment -->
|
|
1197
1198
|
</div>
|
|
1198
1199
|
</div>
|
|
@@ -1274,30 +1275,30 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1274
1275
|
</table>
|
|
1275
1276
|
</div><div class="memdoc">
|
|
1276
1277
|
|
|
1277
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1278
|
-
<div class="fragment"><div class="line"><a name="
|
|
1279
|
-
<div class="line"><a name="
|
|
1280
|
-
<div class="line"><a name="
|
|
1281
|
-
<div class="line"><a name="
|
|
1282
|
-
<div class="line"><a name="
|
|
1283
|
-
<div class="line"><a name="
|
|
1284
|
-
<div class="line"><a name="
|
|
1285
|
-
<div class="line"><a name="
|
|
1286
|
-
<div class="line"><a name="
|
|
1287
|
-
<div class="line"><a name="
|
|
1288
|
-
<div class="line"><a name="
|
|
1289
|
-
<div class="line"><a name="
|
|
1290
|
-
<div class="line"><a name="
|
|
1291
|
-
<div class="line"><a name="
|
|
1292
|
-
<div class="line"><a name="
|
|
1293
|
-
<div class="line"><a name="
|
|
1294
|
-
<div class="line"><a name="
|
|
1295
|
-
<div class="line"><a name="
|
|
1296
|
-
<div class="line"><a name="
|
|
1297
|
-
<div class="line"><a name="
|
|
1298
|
-
<div class="line"><a name="
|
|
1299
|
-
<div class="line"><a name="
|
|
1300
|
-
<div class="line"><a name="
|
|
1278
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00470">470</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1279
|
+
<div class="fragment"><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> {</div>
|
|
1280
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">initSVFVar</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
1281
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
1282
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
|
1283
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// if addr RHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
1284
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</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>
|
|
1285
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  {</div>
|
|
1286
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()].meet_with(</div>
|
|
1287
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afbb9ff1f2c47d2afda117bf63a80a1a7">getRangeLimitFromType</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()));</div>
|
|
1288
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div>
|
|
1289
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
1290
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  </div>
|
|
1291
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div>
|
|
1292
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
1293
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {</div>
|
|
1294
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(</div>
|
|
1295
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
1296
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div>
|
|
1297
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">else</span></div>
|
|
1298
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div>
|
|
1299
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
1300
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
|
1301
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> }</div>
|
|
1301
1302
|
</div><!-- fragment -->
|
|
1302
1303
|
</div>
|
|
1303
1304
|
</div>
|
|
@@ -1317,67 +1318,67 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1317
1318
|
</table>
|
|
1318
1319
|
</div><div class="memdoc">
|
|
1319
1320
|
|
|
1320
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1321
|
-
<div class="fragment"><div class="line"><a name="
|
|
1322
|
-
<div class="line"><a name="
|
|
1323
|
-
<div class="line"><a name="
|
|
1324
|
-
<div class="line"><a name="
|
|
1325
|
-
<div class="line"><a name="
|
|
1326
|
-
<div class="line"><a name="
|
|
1327
|
-
<div class="line"><a name="
|
|
1328
|
-
<div class="line"><a name="
|
|
1329
|
-
<div class="line"><a name="
|
|
1330
|
-
<div class="line"><a name="
|
|
1331
|
-
<div class="line"><a name="
|
|
1332
|
-
<div class="line"><a name="
|
|
1333
|
-
<div class="line"><a name="
|
|
1334
|
-
<div class="line"><a name="
|
|
1335
|
-
<div class="line"><a name="
|
|
1336
|
-
<div class="line"><a name="
|
|
1337
|
-
<div class="line"><a name="
|
|
1338
|
-
<div class="line"><a name="
|
|
1339
|
-
<div class="line"><a name="
|
|
1340
|
-
<div class="line"><a name="
|
|
1341
|
-
<div class="line"><a name="
|
|
1342
|
-
<div class="line"><a name="
|
|
1343
|
-
<div class="line"><a name="
|
|
1344
|
-
<div class="line"><a name="
|
|
1345
|
-
<div class="line"><a name="
|
|
1346
|
-
<div class="line"><a name="
|
|
1347
|
-
<div class="line"><a name="
|
|
1348
|
-
<div class="line"><a name="
|
|
1349
|
-
<div class="line"><a name="
|
|
1350
|
-
<div class="line"><a name="
|
|
1351
|
-
<div class="line"><a name="
|
|
1352
|
-
<div class="line"><a name="
|
|
1353
|
-
<div class="line"><a name="
|
|
1354
|
-
<div class="line"><a name="
|
|
1355
|
-
<div class="line"><a name="
|
|
1356
|
-
<div class="line"><a name="
|
|
1357
|
-
<div class="line"><a name="
|
|
1358
|
-
<div class="line"><a name="
|
|
1359
|
-
<div class="line"><a name="
|
|
1360
|
-
<div class="line"><a name="
|
|
1361
|
-
<div class="line"><a name="
|
|
1362
|
-
<div class="line"><a name="
|
|
1363
|
-
<div class="line"><a name="
|
|
1364
|
-
<div class="line"><a name="
|
|
1365
|
-
<div class="line"><a name="
|
|
1366
|
-
<div class="line"><a name="
|
|
1367
|
-
<div class="line"><a name="
|
|
1368
|
-
<div class="line"><a name="
|
|
1369
|
-
<div class="line"><a name="
|
|
1370
|
-
<div class="line"><a name="
|
|
1371
|
-
<div class="line"><a name="
|
|
1372
|
-
<div class="line"><a name="
|
|
1373
|
-
<div class="line"><a name="
|
|
1374
|
-
<div class="line"><a name="
|
|
1375
|
-
<div class="line"><a name="
|
|
1376
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div>
|
|
1321
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00496">496</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1322
|
+
<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> {</div>
|
|
1323
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> op0 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
1324
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> op1 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
1325
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> res = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1326
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op0)) <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1327
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op1)) <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1328
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op1))</div>
|
|
1329
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div>
|
|
1330
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0], &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1];</div>
|
|
1331
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1332
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
1333
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div>
|
|
1334
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
1335
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
1336
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  resVal = (lhs + rhs);</div>
|
|
1337
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">break</span>;</div>
|
|
1338
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
1339
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
1340
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  resVal = (lhs - rhs);</div>
|
|
1341
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">break</span>;</div>
|
|
1342
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
1343
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
1344
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  resVal = (lhs * rhs);</div>
|
|
1345
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">break</span>;</div>
|
|
1346
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
1347
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
1348
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
1349
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  resVal = (lhs / rhs);</div>
|
|
1350
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">break</span>;</div>
|
|
1351
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
1352
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
1353
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
1354
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  resVal = (lhs % rhs);</div>
|
|
1355
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">break</span>;</div>
|
|
1356
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
1357
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  resVal = (lhs ^ rhs);</div>
|
|
1358
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">break</span>;</div>
|
|
1359
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
1360
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  resVal = (lhs & rhs);</div>
|
|
1361
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">break</span>;</div>
|
|
1362
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
1363
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  resVal = (lhs | rhs);</div>
|
|
1364
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">break</span>;</div>
|
|
1365
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
1366
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  resVal = (lhs >> rhs);</div>
|
|
1367
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">break</span>;</div>
|
|
1368
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
1369
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  resVal = (lhs << rhs);</div>
|
|
1370
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">break</span>;</div>
|
|
1371
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
1372
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  resVal = (lhs >> rhs);</div>
|
|
1373
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">break</span>;</div>
|
|
1374
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">default</span>:</div>
|
|
1375
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  {</div>
|
|
1376
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
1377
1377
|
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
|
|
1378
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
1379
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> 
|
|
1380
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> }</div>
|
|
1378
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  }</div>
|
|
1379
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1380
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div>
|
|
1381
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> }</div>
|
|
1381
1382
|
</div><!-- fragment -->
|
|
1382
1383
|
</div>
|
|
1383
1384
|
</div>
|
|
@@ -1473,20 +1474,20 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1473
1474
|
</table>
|
|
1474
1475
|
</div><div class="memdoc">
|
|
1475
1476
|
|
|
1476
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1477
|
-
<div class="fragment"><div class="line"><a name="
|
|
1478
|
-
<div class="line"><a name="
|
|
1479
|
-
<div class="line"><a name="
|
|
1480
|
-
<div class="line"><a name="
|
|
1481
|
-
<div class="line"><a name="
|
|
1482
|
-
<div class="line"><a name="
|
|
1483
|
-
<div class="line"><a name="
|
|
1484
|
-
<div class="line"><a name="
|
|
1485
|
-
<div class="line"><a name="
|
|
1486
|
-
<div class="line"><a name="
|
|
1487
|
-
<div class="line"><a name="
|
|
1488
|
-
<div class="line"><a name="
|
|
1489
|
-
<div class="line"><a name="
|
|
1477
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00931">931</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1478
|
+
<div class="fragment"><div class="line"><a name="l00932"></a><span class="lineno"> 932</span> {</div>
|
|
1479
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1480
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1481
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
1482
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  {</div>
|
|
1483
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
1484
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div>
|
|
1485
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1486
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div>
|
|
1487
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1488
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1489
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div>
|
|
1490
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> }</div>
|
|
1490
1491
|
</div><!-- fragment -->
|
|
1491
1492
|
</div>
|
|
1492
1493
|
</div>
|
|
@@ -1539,189 +1540,189 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1539
1540
|
</table>
|
|
1540
1541
|
</div><div class="memdoc">
|
|
1541
1542
|
|
|
1542
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1543
|
-
<div class="fragment"><div class="line"><a name="
|
|
1544
|
-
<div class="line"><a name="
|
|
1545
|
-
<div class="line"><a name="
|
|
1546
|
-
<div class="line"><a name="
|
|
1547
|
-
<div class="line"><a name="
|
|
1548
|
-
<div class="line"><a name="
|
|
1549
|
-
<div class="line"><a name="
|
|
1550
|
-
<div class="line"><a name="
|
|
1551
|
-
<div class="line"><a name="
|
|
1552
|
-
<div class="line"><a name="
|
|
1553
|
-
<div class="line"><a name="
|
|
1554
|
-
<div class="line"><a name="
|
|
1555
|
-
<div class="line"><a name="
|
|
1556
|
-
<div class="line"><a name="
|
|
1557
|
-
<div class="line"><a name="
|
|
1558
|
-
<div class="line"><a name="
|
|
1559
|
-
<div class="line"><a name="
|
|
1560
|
-
<div class="line"><a name="
|
|
1561
|
-
<div class="line"><a name="
|
|
1562
|
-
<div class="line"><a name="
|
|
1563
|
-
<div class="line"><a name="
|
|
1564
|
-
<div class="line"><a name="
|
|
1565
|
-
<div class="line"><a name="
|
|
1566
|
-
<div class="line"><a name="
|
|
1567
|
-
<div class="line"><a name="
|
|
1568
|
-
<div class="line"><a name="
|
|
1569
|
-
<div class="line"><a name="
|
|
1570
|
-
<div class="line"><a name="
|
|
1571
|
-
<div class="line"><a name="
|
|
1572
|
-
<div class="line"><a name="
|
|
1573
|
-
<div class="line"><a name="
|
|
1574
|
-
<div class="line"><a name="
|
|
1575
|
-
<div class="line"><a name="
|
|
1576
|
-
<div class="line"><a name="
|
|
1577
|
-
<div class="line"><a name="
|
|
1578
|
-
<div class="line"><a name="
|
|
1579
|
-
<div class="line"><a name="
|
|
1580
|
-
<div class="line"><a name="
|
|
1581
|
-
<div class="line"><a name="
|
|
1582
|
-
<div class="line"><a name="
|
|
1583
|
-
<div class="line"><a name="
|
|
1584
|
-
<div class="line"><a name="
|
|
1585
|
-
<div class="line"><a name="
|
|
1586
|
-
<div class="line"><a name="
|
|
1587
|
-
<div class="line"><a name="
|
|
1588
|
-
<div class="line"><a name="
|
|
1589
|
-
<div class="line"><a name="
|
|
1590
|
-
<div class="line"><a name="
|
|
1591
|
-
<div class="line"><a name="
|
|
1592
|
-
<div class="line"><a name="
|
|
1593
|
-
<div class="line"><a name="
|
|
1594
|
-
<div class="line"><a name="
|
|
1595
|
-
<div class="line"><a name="
|
|
1596
|
-
<div class="line"><a name="
|
|
1597
|
-
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div>
|
|
1543
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00558">558</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1544
|
+
<div class="fragment"><div class="line"><a name="l00559"></a><span class="lineno"> 559</span> {</div>
|
|
1545
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> op0 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
1546
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> op1 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
1547
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> res = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1548
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op1))</div>
|
|
1549
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div>
|
|
1550
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1551
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0], &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1];</div>
|
|
1552
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1553
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1554
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  {</div>
|
|
1555
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1556
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1557
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1558
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  resVal = (lhs == rhs);</div>
|
|
1559
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">break</span>;</div>
|
|
1560
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1561
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1562
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1563
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  resVal = (lhs != rhs);</div>
|
|
1564
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">break</span>;</div>
|
|
1565
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1566
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1567
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1568
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1569
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  resVal = (lhs > rhs);</div>
|
|
1570
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">break</span>;</div>
|
|
1571
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1572
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1573
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1574
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1575
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  resVal = (lhs >= rhs);</div>
|
|
1576
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">break</span>;</div>
|
|
1577
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1578
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1579
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1580
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1581
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  resVal = (lhs < rhs);</div>
|
|
1582
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">break</span>;</div>
|
|
1583
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1584
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1585
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1586
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1587
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  resVal = (lhs <= rhs);</div>
|
|
1588
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">break</span>;</div>
|
|
1589
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1590
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1591
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">break</span>;</div>
|
|
1592
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1593
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1594
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">break</span>;</div>
|
|
1595
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">default</span>:</div>
|
|
1596
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  {</div>
|
|
1597
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1598
1598
|
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div>
|
|
1599
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
1600
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
1601
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
1602
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
1603
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
1604
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="
|
|
1605
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
1606
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
1607
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="
|
|
1608
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> 
|
|
1609
|
-
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> 
|
|
1610
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1611
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1612
|
-
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> 
|
|
1613
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> 
|
|
1614
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> 
|
|
1615
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> 
|
|
1616
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> 
|
|
1617
|
-
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> 
|
|
1618
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> 
|
|
1619
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> 
|
|
1620
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> 
|
|
1621
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> 
|
|
1622
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> 
|
|
1623
|
-
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> 
|
|
1624
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> 
|
|
1625
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> 
|
|
1626
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> 
|
|
1627
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> 
|
|
1628
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> 
|
|
1629
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> 
|
|
1630
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> 
|
|
1631
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1632
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1633
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> 
|
|
1634
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> 
|
|
1635
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> 
|
|
1636
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> 
|
|
1637
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> 
|
|
1638
|
-
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> 
|
|
1639
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> 
|
|
1640
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> 
|
|
1641
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> 
|
|
1642
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> 
|
|
1643
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> 
|
|
1644
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
1645
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> 
|
|
1646
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> 
|
|
1647
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> 
|
|
1648
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> 
|
|
1649
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> 
|
|
1650
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
1651
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
1652
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1653
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1654
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1655
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> 
|
|
1656
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> 
|
|
1657
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> 
|
|
1658
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> 
|
|
1659
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> 
|
|
1660
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> 
|
|
1661
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> 
|
|
1662
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> 
|
|
1663
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> 
|
|
1664
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> 
|
|
1665
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> 
|
|
1666
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> 
|
|
1667
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1668
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1669
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1670
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> 
|
|
1671
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> 
|
|
1672
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> 
|
|
1673
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> 
|
|
1674
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> 
|
|
1675
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> 
|
|
1676
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> 
|
|
1677
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> 
|
|
1678
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
1679
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> 
|
|
1680
|
-
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> 
|
|
1681
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
1682
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1683
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1684
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1685
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> 
|
|
1686
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
1687
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
1688
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
1689
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
1690
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
1691
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
1692
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
1693
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> 
|
|
1694
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
1695
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
1696
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
1697
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1698
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1699
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
1700
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> 
|
|
1701
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
1702
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
1703
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
1704
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
1705
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> 
|
|
1706
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> 
|
|
1707
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> 
|
|
1708
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> 
|
|
1709
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
1710
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> 
|
|
1711
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> 
|
|
1712
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> 
|
|
1713
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <
|
|
1714
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> 
|
|
1715
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> 
|
|
1716
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <
|
|
1717
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> 
|
|
1718
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> 
|
|
1719
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
1720
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> 
|
|
1599
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div>
|
|
1600
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1601
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div>
|
|
1602
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(op1))</div>
|
|
1603
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div>
|
|
1604
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1605
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(op0), &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(op1);</div>
|
|
1606
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  assert(!lhs.empty() && !rhs.empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
1607
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1608
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1609
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  {</div>
|
|
1610
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1611
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1612
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1613
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  {</div>
|
|
1614
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1615
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  {</div>
|
|
1616
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.equals(rhs));</div>
|
|
1617
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  }</div>
|
|
1618
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">else</span></div>
|
|
1619
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  {</div>
|
|
1620
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1621
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  {</div>
|
|
1622
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1623
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  }</div>
|
|
1624
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">else</span></div>
|
|
1625
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  {</div>
|
|
1626
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
1627
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  }</div>
|
|
1628
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  }</div>
|
|
1629
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">break</span>;</div>
|
|
1630
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div>
|
|
1631
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1632
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1633
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1634
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div>
|
|
1635
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1636
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  {</div>
|
|
1637
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.equals(rhs));</div>
|
|
1638
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  }</div>
|
|
1639
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">else</span></div>
|
|
1640
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  {</div>
|
|
1641
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1642
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  {</div>
|
|
1643
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1644
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div>
|
|
1645
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">else</span></div>
|
|
1646
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div>
|
|
1647
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
|
|
1648
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div>
|
|
1649
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div>
|
|
1650
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">break</span>;</div>
|
|
1651
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  }</div>
|
|
1652
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1653
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1654
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1655
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1656
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  {</div>
|
|
1657
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1658
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  {</div>
|
|
1659
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() > *rhs.begin());</div>
|
|
1660
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div>
|
|
1661
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">else</span></div>
|
|
1662
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  {</div>
|
|
1663
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1664
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div>
|
|
1665
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">break</span>;</div>
|
|
1666
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div>
|
|
1667
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1668
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1669
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1670
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1671
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div>
|
|
1672
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1673
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div>
|
|
1674
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() >= *rhs.begin());</div>
|
|
1675
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div>
|
|
1676
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">else</span></div>
|
|
1677
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  {</div>
|
|
1678
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1679
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  }</div>
|
|
1680
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">break</span>;</div>
|
|
1681
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div>
|
|
1682
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1683
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1684
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1685
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1686
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  {</div>
|
|
1687
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1688
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  {</div>
|
|
1689
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() < *rhs.begin());</div>
|
|
1690
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  }</div>
|
|
1691
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">else</span></div>
|
|
1692
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  {</div>
|
|
1693
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1694
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div>
|
|
1695
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keywordflow">break</span>;</div>
|
|
1696
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  }</div>
|
|
1697
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1698
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1699
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1700
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1701
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  {</div>
|
|
1702
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1703
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  {</div>
|
|
1704
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() <= *rhs.begin());</div>
|
|
1705
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  }</div>
|
|
1706
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordflow">else</span></div>
|
|
1707
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  {</div>
|
|
1708
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1709
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div>
|
|
1710
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">break</span>;</div>
|
|
1711
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  }</div>
|
|
1712
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1713
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1714
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">break</span>;</div>
|
|
1715
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1716
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1717
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">break</span>;</div>
|
|
1718
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">default</span>:</div>
|
|
1719
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div>
|
|
1720
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1721
1721
|
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  }</div>
|
|
1722
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> 
|
|
1723
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> 
|
|
1724
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> }</div>
|
|
1722
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  }</div>
|
|
1723
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1724
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  }</div>
|
|
1725
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> }</div>
|
|
1725
1726
|
</div><!-- fragment -->
|
|
1726
1727
|
</div>
|
|
1727
1728
|
</div>
|
|
@@ -1818,35 +1819,35 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1818
1819
|
</table>
|
|
1819
1820
|
</div><div class="memdoc">
|
|
1820
1821
|
|
|
1821
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1822
|
-
<div class="fragment"><div class="line"><a name="
|
|
1823
|
-
<div class="line"><a name="
|
|
1824
|
-
<div class="line"><a name="
|
|
1825
|
-
<div class="line"><a name="
|
|
1826
|
-
<div class="line"><a name="
|
|
1827
|
-
<div class="line"><a name="
|
|
1828
|
-
<div class="line"><a name="
|
|
1829
|
-
<div class="line"><a name="
|
|
1830
|
-
<div class="line"><a name="
|
|
1831
|
-
<div class="line"><a name="
|
|
1832
|
-
<div class="line"><a name="
|
|
1833
|
-
<div class="line"><a name="
|
|
1834
|
-
<div class="line"><a name="
|
|
1835
|
-
<div class="line"><a name="
|
|
1836
|
-
<div class="line"><a name="
|
|
1837
|
-
<div class="line"><a name="
|
|
1838
|
-
<div class="line"><a name="
|
|
1839
|
-
<div class="line"><a name="
|
|
1840
|
-
<div class="line"><a name="
|
|
1841
|
-
<div class="line"><a name="
|
|
1842
|
-
<div class="line"><a name="
|
|
1843
|
-
<div class="line"><a name="
|
|
1844
|
-
<div class="line"><a name="
|
|
1845
|
-
<div class="line"><a name="
|
|
1846
|
-
<div class="line"><a name="
|
|
1847
|
-
<div class="line"><a name="
|
|
1848
|
-
<div class="line"><a name="
|
|
1849
|
-
<div class="line"><a name="
|
|
1822
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00813">813</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1823
|
+
<div class="fragment"><div class="line"><a name="l00814"></a><span class="lineno"> 814</span> {</div>
|
|
1824
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
1825
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
1826
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
1827
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div>
|
|
1828
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1829
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  }</div>
|
|
1830
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">else</span></div>
|
|
1831
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div>
|
|
1832
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
1833
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  {</div>
|
|
1834
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
1835
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="comment">// if copy LHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
1836
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="comment">// this branch can handle bitcast from higher bits integer to</span></div>
|
|
1837
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="comment">// lower bits integer. e.g. bitcast i32 to i8</span></div>
|
|
1838
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType()->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
1839
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div>
|
|
1840
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs].meet_with(</div>
|
|
1841
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afbb9ff1f2c47d2afda117bf63a80a1a7">getRangeLimitFromType</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType()));</div>
|
|
1842
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  }</div>
|
|
1843
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div>
|
|
1844
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1845
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  {</div>
|
|
1846
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1847
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1848
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  }</div>
|
|
1849
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
|
1850
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> }</div>
|
|
1850
1851
|
</div><!-- fragment -->
|
|
1851
1852
|
</div>
|
|
1852
1853
|
</div>
|
|
@@ -1899,31 +1900,31 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1899
1900
|
</table>
|
|
1900
1901
|
</div><div class="memdoc">
|
|
1901
1902
|
|
|
1902
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1903
|
-
<div class="fragment"><div class="line"><a name="
|
|
1904
|
-
<div class="line"><a name="
|
|
1905
|
-
<div class="line"><a name="
|
|
1906
|
-
<div class="line"><a name="
|
|
1907
|
-
<div class="line"><a name="
|
|
1908
|
-
<div class="line"><a name="
|
|
1909
|
-
<div class="line"><a name="
|
|
1910
|
-
<div class="line"><a name="
|
|
1911
|
-
<div class="line"><a name="
|
|
1912
|
-
<div class="line"><a name="
|
|
1913
|
-
<div class="line"><a name="
|
|
1914
|
-
<div class="line"><a name="
|
|
1915
|
-
<div class="line"><a name="
|
|
1916
|
-
<div class="line"><a name="
|
|
1917
|
-
<div class="line"><a name="
|
|
1918
|
-
<div class="line"><a name="
|
|
1919
|
-
<div class="line"><a name="
|
|
1920
|
-
<div class="line"><a name="
|
|
1921
|
-
<div class="line"><a name="
|
|
1922
|
-
<div class="line"><a name="
|
|
1923
|
-
<div class="line"><a name="
|
|
1924
|
-
<div class="line"><a name="
|
|
1925
|
-
<div class="line"><a name="
|
|
1926
|
-
<div class="line"><a name="
|
|
1903
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00843">843</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1904
|
+
<div class="fragment"><div class="line"><a name="l00844"></a><span class="lineno"> 844</span> {</div>
|
|
1905
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> rhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1906
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1907
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs)) <span class="keywordflow">return</span>;</div>
|
|
1908
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1909
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &rhsVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1910
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">if</span> (rhsVal.empty()) <span class="keywordflow">return</span>;</div>
|
|
1911
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetPair = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">getItvOfFlattenedElemIndex</a>(gep);</div>
|
|
1912
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">isVirtualMemAddress</a>(*rhsVal.begin()))</div>
|
|
1913
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">return</span>;</div>
|
|
1914
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">else</span></div>
|
|
1915
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div>
|
|
1916
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> gepAddrs;</div>
|
|
1917
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1918
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1919
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1920
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1921
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i <= ub; i++)</div>
|
|
1922
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  gepAddrs.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">getGepObjAddress</a>(rhs, i));</div>
|
|
1923
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">if</span>(gepAddrs.empty()) <span class="keywordflow">return</span>;</div>
|
|
1924
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = gepAddrs;</div>
|
|
1925
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">return</span>;</div>
|
|
1926
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  }</div>
|
|
1927
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> }</div>
|
|
1927
1928
|
</div><!-- fragment -->
|
|
1928
1929
|
</div>
|
|
1929
1930
|
</div>
|
|
@@ -1943,47 +1944,47 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1943
1944
|
</table>
|
|
1944
1945
|
</div><div class="memdoc">
|
|
1945
1946
|
|
|
1946
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1947
|
-
<div class="fragment"><div class="line"><a name="
|
|
1948
|
-
<div class="line"><a name="
|
|
1949
|
-
<div class="line"><a name="
|
|
1950
|
-
<div class="line"><a name="
|
|
1951
|
-
<div class="line"><a name="
|
|
1952
|
-
<div class="line"><a name="
|
|
1953
|
-
<div class="line"><a name="
|
|
1954
|
-
<div class="line"><a name="
|
|
1955
|
-
<div class="line"><a name="
|
|
1956
|
-
<div class="line"><a name="
|
|
1957
|
-
<div class="line"><a name="
|
|
1958
|
-
<div class="line"><a name="
|
|
1959
|
-
<div class="line"><a name="
|
|
1960
|
-
<div class="line"><a name="
|
|
1961
|
-
<div class="line"><a name="
|
|
1962
|
-
<div class="line"><a name="
|
|
1963
|
-
<div class="line"><a name="
|
|
1964
|
-
<div class="line"><a name="
|
|
1965
|
-
<div class="line"><a name="
|
|
1966
|
-
<div class="line"><a name="
|
|
1967
|
-
<div class="line"><a name="
|
|
1968
|
-
<div class="line"><a name="
|
|
1969
|
-
<div class="line"><a name="
|
|
1970
|
-
<div class="line"><a name="
|
|
1971
|
-
<div class="line"><a name="
|
|
1972
|
-
<div class="line"><a name="
|
|
1973
|
-
<div class="line"><a name="
|
|
1974
|
-
<div class="line"><a name="
|
|
1975
|
-
<div class="line"><a name="
|
|
1976
|
-
<div class="line"><a name="
|
|
1977
|
-
<div class="line"><a name="
|
|
1978
|
-
<div class="line"><a name="
|
|
1979
|
-
<div class="line"><a name="
|
|
1980
|
-
<div class="line"><a name="
|
|
1981
|
-
<div class="line"><a name="
|
|
1982
|
-
<div class="line"><a name="
|
|
1983
|
-
<div class="line"><a name="
|
|
1984
|
-
<div class="line"><a name="
|
|
1985
|
-
<div class="line"><a name="
|
|
1986
|
-
<div class="line"><a name="
|
|
1947
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00742">742</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1948
|
+
<div class="fragment"><div class="line"><a name="l00743"></a><span class="lineno"> 743</span> {</div>
|
|
1949
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> rhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1950
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1951
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1952
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
|
|
1953
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1954
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  assert(!addrs.empty());</div>
|
|
1955
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
1956
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
1957
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
1958
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
1959
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  {</div>
|
|
1960
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
|
|
1961
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a808fdc8ff7637d1c9515e71815548983">inLocToValTable</a>(objId))</div>
|
|
1962
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div>
|
|
1963
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a960ec3359dfcb5e89fb66120c868ac5e">load</a>(addr));</div>
|
|
1964
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  isVal = <span class="keyword">true</span>;</div>
|
|
1965
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  }</div>
|
|
1966
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
|
|
1967
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  {</div>
|
|
1968
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ad17ceaf8058043151ae0f23b3415458a">loadAddrs</a>(addr));</div>
|
|
1969
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
1970
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div>
|
|
1971
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div>
|
|
1972
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
1973
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  {</div>
|
|
1974
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="comment">// lhs var is an integer</span></div>
|
|
1975
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = rhsItv;</div>
|
|
1976
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div>
|
|
1977
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
1978
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  {</div>
|
|
1979
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="comment">// lhs var is an address</span></div>
|
|
1980
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = rhsAddr;</div>
|
|
1981
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div>
|
|
1982
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordflow">else</span></div>
|
|
1983
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  {</div>
|
|
1984
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="comment">// rhs not initialized, e.g., absence of a store before load</span></div>
|
|
1985
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  }</div>
|
|
1986
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div>
|
|
1987
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> }</div>
|
|
1987
1988
|
</div><!-- fragment -->
|
|
1988
1989
|
</div>
|
|
1989
1990
|
</div>
|
|
@@ -2036,38 +2037,38 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2036
2037
|
</table>
|
|
2037
2038
|
</div><div class="memdoc">
|
|
2038
2039
|
|
|
2039
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2040
|
-
<div class="fragment"><div class="line"><a name="
|
|
2041
|
-
<div class="line"><a name="
|
|
2042
|
-
<div class="line"><a name="
|
|
2043
|
-
<div class="line"><a name="
|
|
2044
|
-
<div class="line"><a name="
|
|
2045
|
-
<div class="line"><a name="
|
|
2046
|
-
<div class="line"><a name="
|
|
2047
|
-
<div class="line"><a name="
|
|
2048
|
-
<div class="line"><a name="
|
|
2049
|
-
<div class="line"><a name="
|
|
2050
|
-
<div class="line"><a name="
|
|
2051
|
-
<div class="line"><a name="
|
|
2052
|
-
<div class="line"><a name="
|
|
2053
|
-
<div class="line"><a name="
|
|
2054
|
-
<div class="line"><a name="
|
|
2055
|
-
<div class="line"><a name="
|
|
2056
|
-
<div class="line"><a name="
|
|
2057
|
-
<div class="line"><a name="
|
|
2058
|
-
<div class="line"><a name="
|
|
2059
|
-
<div class="line"><a name="
|
|
2060
|
-
<div class="line"><a name="
|
|
2061
|
-
<div class="line"><a name="
|
|
2062
|
-
<div class="line"><a name="
|
|
2063
|
-
<div class="line"><a name="
|
|
2064
|
-
<div class="line"><a name="
|
|
2065
|
-
<div class="line"><a name="
|
|
2066
|
-
<div class="line"><a name="
|
|
2067
|
-
<div class="line"><a name="
|
|
2068
|
-
<div class="line"><a name="
|
|
2069
|
-
<div class="line"><a name="
|
|
2070
|
-
<div class="line"><a name="
|
|
2040
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00897">897</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2041
|
+
<div class="fragment"><div class="line"><a name="l00898"></a><span class="lineno"> 898</span> {</div>
|
|
2042
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> res = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
2043
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
2044
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
2045
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
2046
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">for</span> (<a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> i = 0; i < phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
|
|
2047
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  {</div>
|
|
2048
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</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>
|
|
2049
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(curId))</div>
|
|
2050
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  {</div>
|
|
2051
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[curId]);</div>
|
|
2052
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  isVal = <span class="keyword">true</span>;</div>
|
|
2053
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div>
|
|
2054
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(curId))</div>
|
|
2055
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  {</div>
|
|
2056
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(curId).empty());</div>
|
|
2057
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(curId));</div>
|
|
2058
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
2059
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div>
|
|
2060
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  }</div>
|
|
2061
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
2062
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  {</div>
|
|
2063
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="comment">// res var is an integer</span></div>
|
|
2064
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = rhsItv;</div>
|
|
2065
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  }</div>
|
|
2066
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
2067
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  {</div>
|
|
2068
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="comment">// res var is an address</span></div>
|
|
2069
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(res) = rhsAddr;</div>
|
|
2070
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
|
|
2071
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> }</div>
|
|
2071
2072
|
</div><!-- fragment -->
|
|
2072
2073
|
</div>
|
|
2073
2074
|
</div>
|
|
@@ -2156,20 +2157,20 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2156
2157
|
</table>
|
|
2157
2158
|
</div><div class="memdoc">
|
|
2158
2159
|
|
|
2159
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2160
|
-
<div class="fragment"><div class="line"><a name="
|
|
2161
|
-
<div class="line"><a name="
|
|
2162
|
-
<div class="line"><a name="
|
|
2163
|
-
<div class="line"><a name="
|
|
2164
|
-
<div class="line"><a name="
|
|
2165
|
-
<div class="line"><a name="
|
|
2166
|
-
<div class="line"><a name="
|
|
2167
|
-
<div class="line"><a name="
|
|
2168
|
-
<div class="line"><a name="
|
|
2169
|
-
<div class="line"><a name="
|
|
2170
|
-
<div class="line"><a name="
|
|
2171
|
-
<div class="line"><a name="
|
|
2172
|
-
<div class="line"><a name="
|
|
2160
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00946">946</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2161
|
+
<div class="fragment"><div class="line"><a name="l00947"></a><span class="lineno"> 947</span> {</div>
|
|
2162
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
2163
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
2164
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
2165
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  {</div>
|
|
2166
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
2167
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  }</div>
|
|
2168
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2169
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  {</div>
|
|
2170
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
2171
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
2172
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div>
|
|
2173
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> }</div>
|
|
2173
2174
|
</div><!-- fragment -->
|
|
2174
2175
|
</div>
|
|
2175
2176
|
</div>
|
|
@@ -2222,33 +2223,33 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2222
2223
|
</table>
|
|
2223
2224
|
</div><div class="memdoc">
|
|
2224
2225
|
|
|
2225
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2226
|
-
<div class="fragment"><div class="line"><a name="
|
|
2227
|
-
<div class="line"><a name="
|
|
2228
|
-
<div class="line"><a name="
|
|
2229
|
-
<div class="line"><a name="
|
|
2230
|
-
<div class="line"><a name="
|
|
2231
|
-
<div class="line"><a name="
|
|
2232
|
-
<div class="line"><a name="
|
|
2233
|
-
<div class="line"><a name="
|
|
2234
|
-
<div class="line"><a name="
|
|
2235
|
-
<div class="line"><a name="
|
|
2236
|
-
<div class="line"><a name="
|
|
2237
|
-
<div class="line"><a name="
|
|
2238
|
-
<div class="line"><a name="
|
|
2239
|
-
<div class="line"><a name="
|
|
2240
|
-
<div class="line"><a name="
|
|
2241
|
-
<div class="line"><a name="
|
|
2242
|
-
<div class="line"><a name="
|
|
2243
|
-
<div class="line"><a name="
|
|
2244
|
-
<div class="line"><a name="
|
|
2245
|
-
<div class="line"><a name="
|
|
2246
|
-
<div class="line"><a name="
|
|
2247
|
-
<div class="line"><a name="
|
|
2248
|
-
<div class="line"><a name="
|
|
2249
|
-
<div class="line"><a name="
|
|
2250
|
-
<div class="line"><a name="
|
|
2251
|
-
<div class="line"><a name="
|
|
2226
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00869">869</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2227
|
+
<div class="fragment"><div class="line"><a name="l00870"></a><span class="lineno"> 870</span> {</div>
|
|
2228
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> res = select-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
2229
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">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>
|
|
2230
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">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>
|
|
2231
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">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>
|
|
2232
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(tval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(fval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(cond))</div>
|
|
2233
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div>
|
|
2234
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2235
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  {</div>
|
|
2236
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_zero() ? <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[fval] : <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[tval];</div>
|
|
2237
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div>
|
|
2238
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">else</span></div>
|
|
2239
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  {</div>
|
|
2240
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond];</div>
|
|
2241
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  }</div>
|
|
2242
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div>
|
|
2243
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(tval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(fval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(cond))</div>
|
|
2244
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  {</div>
|
|
2245
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2246
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  {</div>
|
|
2247
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(fval).empty());</div>
|
|
2248
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(tval).empty());</div>
|
|
2249
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(res) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_zero() ? <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(fval) : <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(tval);</div>
|
|
2250
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  }</div>
|
|
2251
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div>
|
|
2252
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> }</div>
|
|
2252
2253
|
</div><!-- fragment -->
|
|
2253
2254
|
</div>
|
|
2254
2255
|
</div>
|
|
@@ -2310,34 +2311,34 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2310
2311
|
</table>
|
|
2311
2312
|
</div><div class="memdoc">
|
|
2312
2313
|
|
|
2313
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2314
|
-
<div class="fragment"><div class="line"><a name="
|
|
2315
|
-
<div class="line"><a name="
|
|
2316
|
-
<div class="line"><a name="
|
|
2317
|
-
<div class="line"><a name="
|
|
2318
|
-
<div class="line"><a name="
|
|
2319
|
-
<div class="line"><a name="
|
|
2320
|
-
<div class="line"><a name="
|
|
2321
|
-
<div class="line"><a name="
|
|
2322
|
-
<div class="line"><a name="
|
|
2323
|
-
<div class="line"><a name="
|
|
2324
|
-
<div class="line"><a name="
|
|
2325
|
-
<div class="line"><a name="
|
|
2326
|
-
<div class="line"><a name="
|
|
2327
|
-
<div class="line"><a name="
|
|
2328
|
-
<div class="line"><a name="
|
|
2329
|
-
<div class="line"><a name="
|
|
2330
|
-
<div class="line"><a name="
|
|
2331
|
-
<div class="line"><a name="
|
|
2332
|
-
<div class="line"><a name="
|
|
2333
|
-
<div class="line"><a name="
|
|
2334
|
-
<div class="line"><a name="
|
|
2335
|
-
<div class="line"><a name="
|
|
2336
|
-
<div class="line"><a name="
|
|
2337
|
-
<div class="line"><a name="
|
|
2338
|
-
<div class="line"><a name="
|
|
2339
|
-
<div class="line"><a name="
|
|
2340
|
-
<div class="line"><a name="
|
|
2314
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00784">784</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2315
|
+
<div class="fragment"><div class="line"><a name="l00785"></a><span class="lineno"> 785</span> {</div>
|
|
2316
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> rhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
2317
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> lhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
2318
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(lhs))</div>
|
|
2319
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  {</div>
|
|
2320
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
2321
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  {</div>
|
|
2322
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs).empty());</div>
|
|
2323
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs);</div>
|
|
2324
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2325
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  {</div>
|
|
2326
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalESBase.html#adb26b186ee31bce7449a7b36faa24cc2">store</a>(addr, <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs]);</div>
|
|
2327
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div>
|
|
2328
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div>
|
|
2329
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2330
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div>
|
|
2331
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs).empty());</div>
|
|
2332
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs);</div>
|
|
2333
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2334
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  {</div>
|
|
2335
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
2336
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#a99f4437a7e350fec131d48f52082d672">storeAddrs</a>(addr, <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs));</div>
|
|
2337
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div>
|
|
2338
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
|
|
2339
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div>
|
|
2340
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  }</div>
|
|
2341
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> }</div>
|
|
2341
2342
|
</div><!-- fragment -->
|
|
2342
2343
|
</div>
|
|
2343
2344
|
</div>
|
|
@@ -2402,43 +2403,43 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2402
2403
|
</table>
|
|
2403
2404
|
</div><div class="memdoc">
|
|
2404
2405
|
|
|
2405
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2406
|
-
<div class="fragment"><div class="line"><a name="
|
|
2407
|
-
<div class="line"><a name="
|
|
2408
|
-
<div class="line"><a name="
|
|
2409
|
-
<div class="line"><a name="
|
|
2410
|
-
<div class="line"><a name="
|
|
2411
|
-
<div class="line"><a name="
|
|
2412
|
-
<div class="line"><a name="
|
|
2413
|
-
<div class="line"><a name="
|
|
2414
|
-
<div class="line"><a name="
|
|
2415
|
-
<div class="line"><a name="
|
|
2416
|
-
<div class="line"><a name="
|
|
2417
|
-
<div class="line"><a name="
|
|
2418
|
-
<div class="line"><a name="
|
|
2419
|
-
<div class="line"><a name="
|
|
2420
|
-
<div class="line"><a name="
|
|
2421
|
-
<div class="line"><a name="
|
|
2422
|
-
<div class="line"><a name="
|
|
2423
|
-
<div class="line"><a name="
|
|
2424
|
-
<div class="line"><a name="
|
|
2425
|
-
<div class="line"><a name="
|
|
2426
|
-
<div class="line"><a name="
|
|
2427
|
-
<div class="line"><a name="
|
|
2428
|
-
<div class="line"><a name="
|
|
2429
|
-
<div class="line"><a name="
|
|
2430
|
-
<div class="line"><a name="
|
|
2431
|
-
<div class="line"><a name="
|
|
2432
|
-
<div class="line"><a name="
|
|
2433
|
-
<div class="line"><a name="
|
|
2434
|
-
<div class="line"><a name="
|
|
2435
|
-
<div class="line"><a name="
|
|
2436
|
-
<div class="line"><a name="
|
|
2437
|
-
<div class="line"><a name="
|
|
2438
|
-
<div class="line"><a name="
|
|
2439
|
-
<div class="line"><a name="
|
|
2440
|
-
<div class="line"><a name="
|
|
2441
|
-
<div class="line"><a name="
|
|
2406
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00160">160</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2407
|
+
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div>
|
|
2408
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>)</div>
|
|
2409
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div>
|
|
2410
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.find(rhsItem.first);</div>
|
|
2411
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#ad317f2ae2e599a131a6fd9f415f5d712">_varToAddrs</a>.end())</div>
|
|
2412
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
|
2413
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second)</div>
|
|
2414
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div>
|
|
2415
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span> (!lhsIter->second.contains(addr))</div>
|
|
2416
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div>
|
|
2417
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</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>
|
|
2418
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div>
|
|
2419
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">getGepObjAddress</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr), i));</div>
|
|
2420
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
|
2421
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div>
|
|
2422
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div>
|
|
2423
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div>
|
|
2424
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div>
|
|
2425
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>)</div>
|
|
2426
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div>
|
|
2427
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.find(rhsItem.first);</div>
|
|
2428
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a79866a547dc4805d3fefdfd528d2df2a">_locToAddrs</a>.end())</div>
|
|
2429
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
2430
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second)</div>
|
|
2431
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div>
|
|
2432
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">if</span> (!lhsIter->second.contains(addr))</div>
|
|
2433
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div>
|
|
2434
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</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>
|
|
2435
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
2436
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">getGepObjAddress</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr), i));</div>
|
|
2437
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
|
2438
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div>
|
|
2439
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div>
|
|
2440
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
2441
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
2442
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> }</div>
|
|
2442
2443
|
</div><!-- fragment -->
|
|
2443
2444
|
</div>
|
|
2444
2445
|
</div>
|
|
@@ -2658,7 +2659,7 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2658
2659
|
<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#l00908">SVFStatements.h:908</a></div></div>
|
|
2659
2660
|
<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#l00913">SVFStatements.h:913</a></div></div>
|
|
2660
2661
|
<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>
|
|
2661
|
-
<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#
|
|
2662
|
+
<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#l00345">SVFIR2ItvExeState.cpp:345</a></div></div>
|
|
2662
2663
|
<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>
|
|
2663
2664
|
<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#l00043">IntervalValue.h:43</a></div></div>
|
|
2664
2665
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_af61110c081ca71f9348e8dfff5aa76e4"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#af61110c081ca71f9348e8dfff5aa76e4">SVF::IntervalExeState::inLocToAddrsTable</a></div><div class="ttdeci">bool inLocToAddrsTable(u32_t id) const override</div><div class="ttdoc">whether the memory address stores memory addresses</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00490">IntervalExeState.h:490</a></div></div>
|
|
@@ -2691,20 +2692,20 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2691
2692
|
<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>
|
|
2692
2693
|
<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#l00871">SVFStatements.h:871</a></div></div>
|
|
2693
2694
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
|
|
2694
|
-
<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#
|
|
2695
|
+
<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#l00452">SVFIR2ItvExeState.cpp:452</a></div></div>
|
|
2695
2696
|
<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>
|
|
2696
2697
|
<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#l01029">SVFStatements.h:1029</a></div></div>
|
|
2697
2698
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ab6b5ed878ce12016424c48c6252a764e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">SVF::SVFIR2ItvExeState::_es</a></div><div class="ttdeci">IntervalExeState _es</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00205">SVFIR2ItvExeState.h:205</a></div></div>
|
|
2698
2699
|
<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>
|
|
2699
2700
|
<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>
|
|
2700
|
-
<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#
|
|
2701
|
+
<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#l00420">SVFIR2ItvExeState.cpp:420</a></div></div>
|
|
2701
2702
|
<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>
|
|
2702
2703
|
<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#l00993">SVFStatements.h:993</a></div></div>
|
|
2703
2704
|
<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>
|
|
2704
2705
|
<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#l00738">SVFStatements.h:738</a></div></div>
|
|
2705
2706
|
<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>
|
|
2706
2707
|
<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>
|
|
2707
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af8d06156bcbb61beb305ed8096319966"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">Addrs 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#
|
|
2708
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af8d06156bcbb61beb305ed8096319966"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">Addrs 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#l00232">SVFIR2ItvExeState.cpp:232</a></div></div>
|
|
2708
2709
|
<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#l00930">SVFStatements.h:930</a></div></div>
|
|
2709
2710
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_ad485a35730353c0e945bc84a034d9e45"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#ad485a35730353c0e945bc84a034d9e45">SVF::IntervalExeState::inVarToAddrsTable</a></div><div class="ttdeci">bool inVarToAddrsTable(u32_t id) const override</div><div class="ttdoc">whether the variable is in varToAddrs table</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00476">IntervalExeState.h:476</a></div></div>
|
|
2710
2711
|
<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>
|