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
|
@@ -1443,442 +1443,443 @@ $(function() {
|
|
|
1443
1443
|
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  }</div>
|
|
1444
1444
|
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  }</div>
|
|
1445
1445
|
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  assert (<span class="keyword">false</span> && <span class="stringliteral">"Addr rhs value is not ObjVar"</span>);</div>
|
|
1446
|
-
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> 
|
|
1447
|
-
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> 
|
|
1448
|
-
<div class="line"><a name="l01388"></a><span class="lineno"
|
|
1449
|
-
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> 
|
|
1450
|
-
<div class="line"><a name="
|
|
1451
|
-
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  <a class="code" href="
|
|
1452
|
-
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> 
|
|
1453
|
-
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> 
|
|
1454
|
-
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> 
|
|
1455
|
-
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> 
|
|
1456
|
-
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  <
|
|
1457
|
-
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> 
|
|
1458
|
-
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> 
|
|
1459
|
-
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> 
|
|
1460
|
-
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> 
|
|
1461
|
-
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> 
|
|
1462
|
-
<div class="line"><a name="
|
|
1463
|
-
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> 
|
|
1464
|
-
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> 
|
|
1465
|
-
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> 
|
|
1466
|
-
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> 
|
|
1467
|
-
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> 
|
|
1468
|
-
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> 
|
|
1469
|
-
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> 
|
|
1470
|
-
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> 
|
|
1471
|
-
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> 
|
|
1472
|
-
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> 
|
|
1473
|
-
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> 
|
|
1474
|
-
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> 
|
|
1475
|
-
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> 
|
|
1476
|
-
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> 
|
|
1477
|
-
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> 
|
|
1478
|
-
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> 
|
|
1479
|
-
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> 
|
|
1480
|
-
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> 
|
|
1481
|
-
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> 
|
|
1482
|
-
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <span class="comment">//
|
|
1483
|
-
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="comment">//
|
|
1484
|
-
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <span class="comment">//
|
|
1485
|
-
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  <span class="comment">//
|
|
1486
|
-
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="comment">//
|
|
1487
|
-
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  <span class="comment">//
|
|
1488
|
-
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="comment">//
|
|
1489
|
-
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <span class="comment">//
|
|
1490
|
-
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  <span class="comment">//
|
|
1491
|
-
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  <span class="comment">//
|
|
1492
|
-
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="comment">//
|
|
1493
|
-
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  </div>
|
|
1494
|
-
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> 
|
|
1495
|
-
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="comment">//
|
|
1496
|
-
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="comment">//
|
|
1497
|
-
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  </div>
|
|
1498
|
-
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> 
|
|
1499
|
-
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  <span class="comment">//
|
|
1500
|
-
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  <span class="comment">//
|
|
1501
|
-
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  </div>
|
|
1502
|
-
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> 
|
|
1503
|
-
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <span class="
|
|
1504
|
-
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> 
|
|
1505
|
-
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> 
|
|
1506
|
-
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <span class="
|
|
1507
|
-
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <span class="
|
|
1508
|
-
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  <span class="
|
|
1509
|
-
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> 
|
|
1510
|
-
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> 
|
|
1511
|
-
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <
|
|
1512
|
-
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  <span class="
|
|
1513
|
-
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> 
|
|
1514
|
-
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> 
|
|
1515
|
-
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> 
|
|
1516
|
-
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> 
|
|
1517
|
-
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <
|
|
1518
|
-
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> 
|
|
1519
|
-
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> 
|
|
1520
|
-
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> 
|
|
1521
|
-
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> 
|
|
1522
|
-
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> 
|
|
1523
|
-
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> 
|
|
1524
|
-
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> 
|
|
1525
|
-
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> 
|
|
1526
|
-
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> 
|
|
1527
|
-
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> 
|
|
1528
|
-
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> 
|
|
1529
|
-
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> 
|
|
1530
|
-
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> 
|
|
1531
|
-
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> 
|
|
1532
|
-
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> 
|
|
1533
|
-
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> 
|
|
1534
|
-
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> 
|
|
1535
|
-
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> 
|
|
1536
|
-
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> 
|
|
1537
|
-
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> 
|
|
1538
|
-
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> 
|
|
1539
|
-
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  <
|
|
1540
|
-
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <
|
|
1541
|
-
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> 
|
|
1542
|
-
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> 
|
|
1543
|
-
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> 
|
|
1544
|
-
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> 
|
|
1545
|
-
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span> 
|
|
1546
|
-
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> 
|
|
1547
|
-
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <
|
|
1548
|
-
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  <span class="
|
|
1549
|
-
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> 
|
|
1550
|
-
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> 
|
|
1551
|
-
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> 
|
|
1552
|
-
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> 
|
|
1553
|
-
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> 
|
|
1554
|
-
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> 
|
|
1555
|
-
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> 
|
|
1556
|
-
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> 
|
|
1557
|
-
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> 
|
|
1558
|
-
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> 
|
|
1559
|
-
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> 
|
|
1560
|
-
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span> 
|
|
1561
|
-
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> 
|
|
1562
|
-
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> 
|
|
1563
|
-
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span> 
|
|
1564
|
-
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> 
|
|
1565
|
-
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> 
|
|
1566
|
-
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> 
|
|
1567
|
-
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  <span class="
|
|
1568
|
-
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> 
|
|
1569
|
-
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> 
|
|
1570
|
-
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> 
|
|
1571
|
-
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> 
|
|
1572
|
-
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> 
|
|
1446
|
+
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  abort();</div>
|
|
1447
|
+
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> }</div>
|
|
1448
|
+
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  </div>
|
|
1449
|
+
<div class="line"><a name="l01389"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a4efc7447db13da26ce284218d6c01059"> 1389</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1AEAPI.html#a4efc7447db13da26ce284218d6c01059">AEAPI::traceMemoryAllocationSize</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value)</div>
|
|
1450
|
+
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> {</div>
|
|
1451
|
+
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  <a class="code" href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList<const SVFValue *></a> worklist;</div>
|
|
1452
|
+
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFValue *></a> visited;</div>
|
|
1453
|
+
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  visited.insert(value);</div>
|
|
1454
|
+
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode *, IntervalValue></a> gep_offsets;</div>
|
|
1455
|
+
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(value);</div>
|
|
1456
|
+
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> total_bytes(0);</div>
|
|
1457
|
+
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#a071a624c91def82a4bbbf3806c7b7eea">empty</a>())</div>
|
|
1458
|
+
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  {</div>
|
|
1459
|
+
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  value = worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#a3fd9acb6d09fd142bfd402fdf8cac93b">pop</a>();</div>
|
|
1460
|
+
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* ins = SVFUtil::dyn_cast<SVFInstruction>(value))</div>
|
|
1461
|
+
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  {</div>
|
|
1462
|
+
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node = _svfir->getICFG()->getICFGNode(ins);</div>
|
|
1463
|
+
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callnode = SVFUtil::dyn_cast<CallICFGNode>(node))</div>
|
|
1464
|
+
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  {</div>
|
|
1465
|
+
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="comment">//to handle Ret PE</span></div>
|
|
1466
|
+
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  AccessMemoryViaRetNode(callnode, worklist, visited);</div>
|
|
1467
|
+
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  }</div>
|
|
1468
|
+
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt: node-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
1469
|
+
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  {</div>
|
|
1470
|
+
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast<CopyStmt>(stmt))</div>
|
|
1471
|
+
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  {</div>
|
|
1472
|
+
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <span class="comment">// Copy Stmt, forward to lhs</span></div>
|
|
1473
|
+
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  AccessMemoryViaCopyStmt(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>, worklist, visited);</div>
|
|
1474
|
+
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  }</div>
|
|
1475
|
+
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load = SVFUtil::dyn_cast<LoadStmt>(stmt))</div>
|
|
1476
|
+
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  {</div>
|
|
1477
|
+
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="comment">// Load Stmt, forward to the Var from last Store Stmt</span></div>
|
|
1478
|
+
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  AccessMemoryViaLoadStmt(load, worklist, visited);</div>
|
|
1479
|
+
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  }</div>
|
|
1480
|
+
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep = SVFUtil::dyn_cast<GepStmt>(stmt))</div>
|
|
1481
|
+
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  {</div>
|
|
1482
|
+
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <span class="comment">// there are 3 type of gepStmt</span></div>
|
|
1483
|
+
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="comment">// 1. ptr get offset</span></div>
|
|
1484
|
+
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <span class="comment">// 2. struct get field</span></div>
|
|
1485
|
+
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  <span class="comment">// 3. array get element</span></div>
|
|
1486
|
+
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="comment">// for array gep, there are two kind of overflow checking</span></div>
|
|
1487
|
+
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  <span class="comment">// Arr [Struct.C * 10] arr, Struct.C {i32 a, i32 b}</span></div>
|
|
1488
|
+
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="comment">// arr[11].a = **, it is "lhs = gep *arr, 0 (ptr), 11 (arrIdx), 0 (ptr), 0(struct field)"</span></div>
|
|
1489
|
+
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  <span class="comment">// 1) in this case arrIdx 11 is overflow.</span></div>
|
|
1490
|
+
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  <span class="comment">// Other case,</span></div>
|
|
1491
|
+
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  <span class="comment">// Struct.C {i32 a, [i32*10] b, i32 c}, C.b[11] = 1</span></div>
|
|
1492
|
+
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="comment">// it is "lhs - gep *C, 0(ptr), 1(struct field), 0(ptr), 11(arrIdx)"</span></div>
|
|
1493
|
+
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <span class="comment">// 2) in this case arrIdx 11 is larger than its getOffsetVar.Type Array([i32*10])</span></div>
|
|
1494
|
+
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  </div>
|
|
1495
|
+
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="comment">// therefore, if last getOffsetVar.Type is not the Array, just check the overall offset and its</span></div>
|
|
1496
|
+
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="comment">// gep source type size (together with totalOffset along the value flow).</span></div>
|
|
1497
|
+
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  <span class="comment">// Alloc Size: TBD, but totalOffset + current Gep offset</span></div>
|
|
1498
|
+
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  </div>
|
|
1499
|
+
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  <span class="comment">// otherwise, if last getOffsetVar.Type is the Array, check the last idx and array. (just offset,</span></div>
|
|
1500
|
+
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  <span class="comment">// not with totalOffset during check)</span></div>
|
|
1501
|
+
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  <span class="comment">// Alloc Size: getOffsetVar.TypeByteSize()</span></div>
|
|
1502
|
+
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  </div>
|
|
1503
|
+
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <span class="comment">// make sure it has OffsetVarAndGepType Pair</span></div>
|
|
1504
|
+
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  <span class="keywordflow">if</span> (gep->getOffsetVarAndGepTypePairVec().size() > 0)</div>
|
|
1505
|
+
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  {</div>
|
|
1506
|
+
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <span class="comment">// check if last OffsetVarAndGepType Pair is Array</span></div>
|
|
1507
|
+
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* gepType = gep->getOffsetVarAndGepTypePairVec().back().second;</div>
|
|
1508
|
+
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  <span class="comment">// if its array</span></div>
|
|
1509
|
+
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  <span class="keywordflow">if</span> (gepType-><a class="code" href="classSVF_1_1SVFType.html#a330084f9a3deb6e5acb52a8ee3eb7fe4">isArrayTy</a>())</div>
|
|
1510
|
+
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  {</div>
|
|
1511
|
+
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs_type_bytes = gepType-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1512
|
+
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  <span class="comment">// if gepStmt's base var is Array, compares offset with the arraysize</span></div>
|
|
1513
|
+
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(rhs_type_bytes);</div>
|
|
1514
|
+
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  }</div>
|
|
1515
|
+
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  <span class="keywordflow">else</span></div>
|
|
1516
|
+
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  {</div>
|
|
1517
|
+
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> byteOffset;</div>
|
|
1518
|
+
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  <span class="keywordflow">if</span> (gep->isConstantOffset())</div>
|
|
1519
|
+
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  {</div>
|
|
1520
|
+
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  byteOffset = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(gep->accumulateConstantByteOffset());</div>
|
|
1521
|
+
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  }</div>
|
|
1522
|
+
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  <span class="keywordflow">else</span></div>
|
|
1523
|
+
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  {</div>
|
|
1524
|
+
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> byteOffset = _ae->_svfir2ExeState->getByteOffset(gep);</div>
|
|
1525
|
+
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  }</div>
|
|
1526
|
+
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  <span class="comment">// for variable offset, join with accumulate gep offset</span></div>
|
|
1527
|
+
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  gep_offsets[gep->getICFGNode()] = byteOffset;</div>
|
|
1528
|
+
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  total_bytes = total_bytes + byteOffset;</div>
|
|
1529
|
+
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  }</div>
|
|
1530
|
+
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  }</div>
|
|
1531
|
+
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  <span class="keywordflow">if</span> (!visited.count(gep->getRHSVar()->getValue()))</div>
|
|
1532
|
+
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  {</div>
|
|
1533
|
+
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  visited.insert(gep->getRHSVar()->getValue());</div>
|
|
1534
|
+
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(gep->getRHSVar()->getValue());</div>
|
|
1535
|
+
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  }</div>
|
|
1536
|
+
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  }</div>
|
|
1537
|
+
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr = SVFUtil::dyn_cast<AddrStmt>(stmt))</div>
|
|
1538
|
+
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  {</div>
|
|
1539
|
+
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  <span class="comment">// addrStmt is source node.</span></div>
|
|
1540
|
+
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> arr_type_size = getAllocaInstByteSize(addr);</div>
|
|
1541
|
+
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(arr_type_size) - total_bytes;</div>
|
|
1542
|
+
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  }</div>
|
|
1543
|
+
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  }</div>
|
|
1544
|
+
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  }</div>
|
|
1545
|
+
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a>* gvalue = SVFUtil::dyn_cast<SVF::SVFGlobalValue>(value))</div>
|
|
1546
|
+
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  {</div>
|
|
1547
|
+
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> arr_type_size = 0;</div>
|
|
1548
|
+
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype = gvalue->getType();</div>
|
|
1549
|
+
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(svftype))</div>
|
|
1550
|
+
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  {</div>
|
|
1551
|
+
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* ptrArrType = SVFUtil::dyn_cast<SVFArrayType>(getPointeeElement(_svfir->getValueNode(value))))</div>
|
|
1552
|
+
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  arr_type_size = ptrArrType-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1553
|
+
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  <span class="keywordflow">else</span></div>
|
|
1554
|
+
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  arr_type_size = svftype-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1555
|
+
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  }</div>
|
|
1556
|
+
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  <span class="keywordflow">else</span></div>
|
|
1557
|
+
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  arr_type_size = svftype-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
1558
|
+
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(arr_type_size) - total_bytes;</div>
|
|
1559
|
+
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  }</div>
|
|
1560
|
+
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a>* arg = SVFUtil::dyn_cast<SVF::SVFArgument>(value))</div>
|
|
1561
|
+
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  {</div>
|
|
1562
|
+
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>  <span class="comment">// to handle call PE</span></div>
|
|
1563
|
+
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  AccessMemoryViaCallArgs(arg, worklist, visited);</div>
|
|
1564
|
+
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  }</div>
|
|
1565
|
+
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>  <span class="keywordflow">else</span></div>
|
|
1566
|
+
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>  {</div>
|
|
1567
|
+
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  <span class="comment">// maybe SVFConstant</span></div>
|
|
1568
|
+
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
1569
|
+
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  }</div>
|
|
1570
|
+
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>  }</div>
|
|
1571
|
+
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
1572
|
+
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span> }</div>
|
|
1573
1573
|
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  </div>
|
|
1574
|
-
<div class="line"><a name="l01520"></a><span class="lineno"
|
|
1575
|
-
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span> 
|
|
1576
|
-
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> 
|
|
1577
|
-
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <a class="code" href="
|
|
1578
|
-
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <a class="code" href="
|
|
1579
|
-
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  <a class="code" href="namespaceSVF.html#
|
|
1580
|
-
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  <a class="code" href="namespaceSVF.html#
|
|
1581
|
-
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  <
|
|
1582
|
-
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span> 
|
|
1583
|
-
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> 
|
|
1584
|
-
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> 
|
|
1585
|
-
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span> 
|
|
1586
|
-
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  <a class="code" href="
|
|
1587
|
-
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  <
|
|
1588
|
-
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span> 
|
|
1589
|
-
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> 
|
|
1590
|
-
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> 
|
|
1591
|
-
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span> 
|
|
1592
|
-
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span> 
|
|
1593
|
-
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span> 
|
|
1594
|
-
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> 
|
|
1595
|
-
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> 
|
|
1596
|
-
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> 
|
|
1597
|
-
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> 
|
|
1598
|
-
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> 
|
|
1599
|
-
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> 
|
|
1600
|
-
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> 
|
|
1601
|
-
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> 
|
|
1602
|
-
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> 
|
|
1603
|
-
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> 
|
|
1604
|
-
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span> 
|
|
1605
|
-
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> 
|
|
1606
|
-
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span> 
|
|
1607
|
-
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span> 
|
|
1608
|
-
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span> 
|
|
1609
|
-
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> 
|
|
1610
|
-
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> 
|
|
1611
|
-
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> 
|
|
1612
|
-
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span> 
|
|
1613
|
-
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span> 
|
|
1614
|
-
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> 
|
|
1615
|
-
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span> 
|
|
1616
|
-
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> 
|
|
1617
|
-
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> 
|
|
1618
|
-
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> 
|
|
1619
|
-
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span> 
|
|
1620
|
-
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span> 
|
|
1621
|
-
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span> 
|
|
1622
|
-
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span> 
|
|
1623
|
-
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span> 
|
|
1624
|
-
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> 
|
|
1625
|
-
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span> }</div>
|
|
1626
|
-
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> 
|
|
1574
|
+
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  </div>
|
|
1575
|
+
<div class="line"><a name="l01521"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#ae0519df0b6927a2d077c3d46beeaa9f7"> 1521</a></span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1AEAPI.html#ae0519df0b6927a2d077c3d46beeaa9f7">AEAPI::getStrlen</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVF::SVFValue</a> *strValue)</div>
|
|
1576
|
+
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span> {</div>
|
|
1577
|
+
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &es = _ae->_svfir2ExeState->getEs();</div>
|
|
1578
|
+
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> dst_size = traceMemoryAllocationSize(strValue);</div>
|
|
1579
|
+
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> len = 0;</div>
|
|
1580
|
+
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstid = _svfir->getValueNode(strValue);</div>
|
|
1581
|
+
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemSize = 1;</div>
|
|
1582
|
+
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <span class="keywordflow">if</span> (_ae->_svfir2ExeState->inVarToAddrsTable(dstid))</div>
|
|
1583
|
+
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  {</div>
|
|
1584
|
+
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < dst_size.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().getNumeral(); <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>++)</div>
|
|
1585
|
+
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  {</div>
|
|
1586
|
+
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a> expr0 = _ae->_svfir2ExeState->getGepObjAddress(dstid, <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>);</div>
|
|
1587
|
+
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> val = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
1588
|
+
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: expr0)</div>
|
|
1589
|
+
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  {</div>
|
|
1590
|
+
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  val.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(es.<a class="code" href="classSVF_1_1IntervalExeState.html#a960ec3359dfcb5e89fb66120c868ac5e">load</a>(addr));</div>
|
|
1591
|
+
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  }</div>
|
|
1592
|
+
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  <span class="keywordflow">if</span> (val.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && (<span class="keywordtype">char</span>) val.<a class="code" href="classSVF_1_1IntervalValue.html#ae081b5c462f8ed5b306719822e35cea9">getNumeral</a>() == <span class="charliteral">'\0'</span>)</div>
|
|
1593
|
+
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  {</div>
|
|
1594
|
+
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  <span class="keywordflow">break</span>;</div>
|
|
1595
|
+
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  }</div>
|
|
1596
|
+
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  ++len;</div>
|
|
1597
|
+
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  }</div>
|
|
1598
|
+
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  <span class="keywordflow">if</span> (strValue-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a330084f9a3deb6e5acb52a8ee3eb7fe4">isArrayTy</a>())</div>
|
|
1599
|
+
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  {</div>
|
|
1600
|
+
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  elemSize = SVFUtil::dyn_cast<SVFArrayType>(strValue-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>())->getTypeOfElement()->getByteSize();</div>
|
|
1601
|
+
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  }</div>
|
|
1602
|
+
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strValue-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
|
|
1603
|
+
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  {</div>
|
|
1604
|
+
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemType = getPointeeElement(_svfir->getValueNode(strValue)))</div>
|
|
1605
|
+
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>  {</div>
|
|
1606
|
+
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  elemSize = elemType->getByteSize();</div>
|
|
1607
|
+
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  }</div>
|
|
1608
|
+
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  <span class="keywordflow">else</span></div>
|
|
1609
|
+
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  {</div>
|
|
1610
|
+
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  elemSize = 1;</div>
|
|
1611
|
+
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  }</div>
|
|
1612
|
+
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  }</div>
|
|
1613
|
+
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  <span class="keywordflow">else</span></div>
|
|
1614
|
+
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  {</div>
|
|
1615
|
+
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"we cannot support this type"</span>);</div>
|
|
1616
|
+
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  }</div>
|
|
1617
|
+
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  }</div>
|
|
1618
|
+
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  <span class="keywordflow">if</span> (len == 0)</div>
|
|
1619
|
+
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  {</div>
|
|
1620
|
+
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</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>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
|
|
1621
|
+
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  }</div>
|
|
1622
|
+
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  <span class="keywordflow">else</span></div>
|
|
1623
|
+
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  {</div>
|
|
1624
|
+
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(len * elemSize);</div>
|
|
1625
|
+
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  }</div>
|
|
1626
|
+
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span> }</div>
|
|
1627
1627
|
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  </div>
|
|
1628
|
-
<div class="line"><a name="l01574"></a><span class="lineno"
|
|
1629
|
-
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> 
|
|
1630
|
-
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> 
|
|
1631
|
-
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  <span class="comment">//
|
|
1632
|
-
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  <span class="
|
|
1633
|
-
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  <span class="keyword">const</span>
|
|
1634
|
-
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  <span class="keyword">const</span> std::vector<std::string>
|
|
1635
|
-
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <span class="
|
|
1636
|
-
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> 
|
|
1637
|
-
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> 
|
|
1638
|
-
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  <
|
|
1639
|
-
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*
|
|
1640
|
-
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <a class="code" href="
|
|
1641
|
-
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>
|
|
1642
|
-
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>
|
|
1643
|
-
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> 
|
|
1644
|
-
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> 
|
|
1645
|
-
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span> 
|
|
1646
|
-
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span> 
|
|
1647
|
-
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> 
|
|
1648
|
-
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> 
|
|
1649
|
-
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <
|
|
1650
|
-
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*
|
|
1651
|
-
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*
|
|
1652
|
-
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  <a class="code" href="
|
|
1653
|
-
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>
|
|
1654
|
-
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>
|
|
1655
|
-
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span> 
|
|
1656
|
-
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> 
|
|
1657
|
-
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> 
|
|
1658
|
-
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> 
|
|
1659
|
-
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> 
|
|
1660
|
-
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> 
|
|
1661
|
-
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> 
|
|
1662
|
-
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> }</div>
|
|
1663
|
-
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> 
|
|
1664
|
-
<div class="line"><a name="l01610"></a><span class="lineno"
|
|
1665
|
-
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> 
|
|
1666
|
-
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> 
|
|
1667
|
-
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  <a class="code" href="
|
|
1668
|
-
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
1669
|
-
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
1670
|
-
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  <
|
|
1671
|
-
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span> 
|
|
1672
|
-
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span> 
|
|
1673
|
-
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span> 
|
|
1674
|
-
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> 
|
|
1675
|
-
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <span class="
|
|
1676
|
-
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span> 
|
|
1677
|
-
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span> 
|
|
1678
|
-
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> 
|
|
1679
|
-
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> 
|
|
1680
|
-
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> 
|
|
1681
|
-
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span> 
|
|
1682
|
-
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> 
|
|
1683
|
-
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span> 
|
|
1684
|
-
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span> 
|
|
1685
|
-
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span> 
|
|
1686
|
-
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> 
|
|
1687
|
-
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span> 
|
|
1688
|
-
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span> 
|
|
1689
|
-
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> 
|
|
1690
|
-
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> 
|
|
1691
|
-
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span> 
|
|
1692
|
-
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> 
|
|
1693
|
-
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span> 
|
|
1694
|
-
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
1695
|
-
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <
|
|
1696
|
-
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span> 
|
|
1697
|
-
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span> 
|
|
1698
|
-
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span> 
|
|
1699
|
-
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> 
|
|
1700
|
-
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  <
|
|
1701
|
-
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a>
|
|
1702
|
-
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <
|
|
1703
|
-
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span> 
|
|
1704
|
-
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span> 
|
|
1705
|
-
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> 
|
|
1706
|
-
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> 
|
|
1707
|
-
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <
|
|
1708
|
-
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> 
|
|
1709
|
-
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> 
|
|
1710
|
-
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> 
|
|
1711
|
-
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> 
|
|
1712
|
-
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> 
|
|
1713
|
-
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span> 
|
|
1714
|
-
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> 
|
|
1715
|
-
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> 
|
|
1716
|
-
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> 
|
|
1717
|
-
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> 
|
|
1718
|
-
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span> 
|
|
1719
|
-
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span> }</div>
|
|
1720
|
-
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> 
|
|
1721
|
-
<div class="line"><a name="l01667"></a><span class="lineno"
|
|
1722
|
-
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> 
|
|
1723
|
-
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> 
|
|
1724
|
-
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> 
|
|
1725
|
-
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span> 
|
|
1726
|
-
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span> 
|
|
1727
|
-
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  <span class="
|
|
1728
|
-
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> 
|
|
1729
|
-
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span> 
|
|
1730
|
-
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>  <
|
|
1731
|
-
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span> 
|
|
1732
|
-
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span> 
|
|
1733
|
-
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span> 
|
|
1734
|
-
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> 
|
|
1735
|
-
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> 
|
|
1736
|
-
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> 
|
|
1737
|
-
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> 
|
|
1738
|
-
<div class="line"><a name="l01684"></a><span class="lineno"
|
|
1739
|
-
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> 
|
|
1740
|
-
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> 
|
|
1741
|
-
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <a class="code" href="
|
|
1742
|
-
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
1743
|
-
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>
|
|
1744
|
-
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <
|
|
1745
|
-
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span> 
|
|
1746
|
-
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> 
|
|
1747
|
-
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> 
|
|
1748
|
-
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span> 
|
|
1749
|
-
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span> 
|
|
1750
|
-
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span> 
|
|
1751
|
-
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span> 
|
|
1752
|
-
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span> 
|
|
1753
|
-
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> 
|
|
1754
|
-
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span> 
|
|
1755
|
-
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span> 
|
|
1756
|
-
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span> 
|
|
1757
|
-
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span> 
|
|
1758
|
-
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span> 
|
|
1759
|
-
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span> 
|
|
1760
|
-
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span> 
|
|
1761
|
-
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span> 
|
|
1762
|
-
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span> 
|
|
1763
|
-
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span> 
|
|
1764
|
-
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span> 
|
|
1765
|
-
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <
|
|
1766
|
-
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> 
|
|
1767
|
-
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> 
|
|
1768
|
-
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <span class="
|
|
1769
|
-
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> 
|
|
1770
|
-
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> 
|
|
1771
|
-
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  <
|
|
1772
|
-
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> 
|
|
1773
|
-
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> 
|
|
1774
|
-
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  <
|
|
1775
|
-
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span> 
|
|
1776
|
-
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span> 
|
|
1777
|
-
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span> 
|
|
1778
|
-
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> 
|
|
1779
|
-
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span> 
|
|
1780
|
-
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span> 
|
|
1781
|
-
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> 
|
|
1782
|
-
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> 
|
|
1783
|
-
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> 
|
|
1784
|
-
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span> 
|
|
1785
|
-
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span> 
|
|
1786
|
-
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span> 
|
|
1787
|
-
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span> 
|
|
1788
|
-
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> 
|
|
1789
|
-
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> }</div>
|
|
1790
|
-
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> 
|
|
1628
|
+
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  </div>
|
|
1629
|
+
<div class="line"><a name="l01575"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a4d160903c3bbedbd486be39c40c2c836"> 1575</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#a4d160903c3bbedbd486be39c40c2c836">AEAPI::handleStrcat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a> *call)</div>
|
|
1630
|
+
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> {</div>
|
|
1631
|
+
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  <span class="comment">// __strcat_chk, strcat, __wcscat_chk, wcscat, __strncat_chk, strncat, __wcsncat_chk, wcsncat</span></div>
|
|
1632
|
+
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  <span class="comment">// to check it is strcat group or strncat group</span></div>
|
|
1633
|
+
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(call-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
|
|
1634
|
+
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  <span class="keyword">const</span> std::vector<std::string> strcatGroup = {<span class="stringliteral">"__strcat_chk"</span>, <span class="stringliteral">"strcat"</span>, <span class="stringliteral">"__wcscat_chk"</span>, <span class="stringliteral">"wcscat"</span>};</div>
|
|
1635
|
+
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <span class="keyword">const</span> std::vector<std::string> strncatGroup = {<span class="stringliteral">"__strncat_chk"</span>, <span class="stringliteral">"strncat"</span>, <span class="stringliteral">"__wcsncat_chk"</span>, <span class="stringliteral">"wcsncat"</span>};</div>
|
|
1636
|
+
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  <span class="keywordflow">if</span> (std::find(strcatGroup.begin(), strcatGroup.end(), fun-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>()) != strcatGroup.end())</div>
|
|
1637
|
+
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  {</div>
|
|
1638
|
+
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(call-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
|
|
1639
|
+
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* arg0Val = cs.<a class="code" href="classSVF_1_1CallSite.html#a9e7c94ee7f689466111487e03b2cebcc">getArgument</a>(0);</div>
|
|
1640
|
+
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* arg1Val = cs.<a class="code" href="classSVF_1_1CallSite.html#a9e7c94ee7f689466111487e03b2cebcc">getArgument</a>(1);</div>
|
|
1641
|
+
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> strLen0 = getStrlen(arg0Val);</div>
|
|
1642
|
+
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> strLen1 = getStrlen(arg1Val);</div>
|
|
1643
|
+
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> totalLen = strLen0 + strLen1;</div>
|
|
1644
|
+
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  handleMemcpy(arg0Val, arg1Val, strLen1, strLen0.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
1645
|
+
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  <span class="comment">// do memcpy</span></div>
|
|
1646
|
+
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  }</div>
|
|
1647
|
+
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (std::find(strncatGroup.begin(), strncatGroup.end(), fun-><a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>()) != strncatGroup.end())</div>
|
|
1648
|
+
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  {</div>
|
|
1649
|
+
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(call-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div>
|
|
1650
|
+
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* arg0Val = cs.<a class="code" href="classSVF_1_1CallSite.html#a9e7c94ee7f689466111487e03b2cebcc">getArgument</a>(0);</div>
|
|
1651
|
+
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* arg1Val = cs.<a class="code" href="classSVF_1_1CallSite.html#a9e7c94ee7f689466111487e03b2cebcc">getArgument</a>(1);</div>
|
|
1652
|
+
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* arg2Val = cs.<a class="code" href="classSVF_1_1CallSite.html#a9e7c94ee7f689466111487e03b2cebcc">getArgument</a>(2);</div>
|
|
1653
|
+
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> arg2Num = _ae->_svfir2ExeState->getEs()[_svfir->getValueNode(arg2Val)];</div>
|
|
1654
|
+
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> strLen0 = getStrlen(arg0Val);</div>
|
|
1655
|
+
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> totalLen = strLen0 + arg2Num;</div>
|
|
1656
|
+
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  handleMemcpy(arg0Val, arg1Val, arg2Num, strLen0.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
1657
|
+
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  <span class="comment">// do memcpy</span></div>
|
|
1658
|
+
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  }</div>
|
|
1659
|
+
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  <span class="keywordflow">else</span></div>
|
|
1660
|
+
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  {</div>
|
|
1661
|
+
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unknown strcat function, please add it to strcatGroup or strncatGroup"</span>);</div>
|
|
1662
|
+
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  }</div>
|
|
1663
|
+
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> }</div>
|
|
1664
|
+
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  </div>
|
|
1665
|
+
<div class="line"><a name="l01611"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#ae0847fb421538982bfd50cc280d1a65b"> 1611</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#ae0847fb421538982bfd50cc280d1a65b">AEAPI::handleMemcpy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVF::SVFValue</a> *dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVF::SVFValue</a> *src, <a class="code" href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a> len, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> start_idx)</div>
|
|
1666
|
+
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> {</div>
|
|
1667
|
+
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &es = _ae->_svfir2ExeState->getEs();</div>
|
|
1668
|
+
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dstId = _svfir->getValueNode(dst); <span class="comment">// pts(dstId) = {objid} objbar objtypeinfo->getType().</span></div>
|
|
1669
|
+
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> srcId = _svfir->getValueNode(src);</div>
|
|
1670
|
+
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemSize = 1;</div>
|
|
1671
|
+
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  <span class="keywordflow">if</span> (dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a330084f9a3deb6e5acb52a8ee3eb7fe4">isArrayTy</a>())</div>
|
|
1672
|
+
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  {</div>
|
|
1673
|
+
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  elemSize = SVFUtil::dyn_cast<SVFArrayType>(dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>())->getTypeOfElement()->getByteSize();</div>
|
|
1674
|
+
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  }</div>
|
|
1675
|
+
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  <span class="comment">// memcpy(i32*, i32*, 40)</span></div>
|
|
1676
|
+
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
|
|
1677
|
+
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  {</div>
|
|
1678
|
+
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemType = getPointeeElement(_svfir->getValueNode(dst)))</div>
|
|
1679
|
+
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  {</div>
|
|
1680
|
+
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  <span class="keywordflow">if</span> (elemType->isArrayTy())</div>
|
|
1681
|
+
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  elemSize = SVFUtil::dyn_cast<SVFArrayType>(elemType)->getTypeOfElement()->getByteSize();</div>
|
|
1682
|
+
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  <span class="keywordflow">else</span></div>
|
|
1683
|
+
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  elemSize = elemType->getByteSize();</div>
|
|
1684
|
+
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  }</div>
|
|
1685
|
+
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  <span class="keywordflow">else</span></div>
|
|
1686
|
+
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  {</div>
|
|
1687
|
+
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  elemSize = 1;</div>
|
|
1688
|
+
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  }</div>
|
|
1689
|
+
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  }</div>
|
|
1690
|
+
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <span class="keywordflow">else</span></div>
|
|
1691
|
+
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  {</div>
|
|
1692
|
+
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"we cannot support this type"</span>);</div>
|
|
1693
|
+
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  }</div>
|
|
1694
|
+
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = std::min((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(), (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>) len.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
1695
|
+
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> range_val = size / elemSize;</div>
|
|
1696
|
+
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  <span class="keywordflow">if</span> (_ae->_svfir2ExeState->inVarToAddrsTable(srcId) && _ae->_svfir2ExeState->inVarToAddrsTable(dstId))</div>
|
|
1697
|
+
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  {</div>
|
|
1698
|
+
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < range_val; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>++)</div>
|
|
1699
|
+
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  {</div>
|
|
1700
|
+
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  <span class="comment">// dead loop for string and break if there's a \0. If no \0, it will throw err.</span></div>
|
|
1701
|
+
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a> expr_src = _ae->_svfir2ExeState->getGepObjAddress(srcId, <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>);</div>
|
|
1702
|
+
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a> expr_dst = _ae->_svfir2ExeState->getGepObjAddress(dstId, <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> + start_idx);</div>
|
|
1703
|
+
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &dst: expr_dst)</div>
|
|
1704
|
+
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  {</div>
|
|
1705
|
+
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &src: expr_src)</div>
|
|
1706
|
+
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  {</div>
|
|
1707
|
+
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">ExeState::getInternalID</a>(src);</div>
|
|
1708
|
+
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  <span class="keywordflow">if</span> (es.<a class="code" href="classSVF_1_1IntervalExeState.html#a50aee49f7f34e05f7e2cb28ae55099f8">inLocToValTable</a>(objId))</div>
|
|
1709
|
+
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  {</div>
|
|
1710
|
+
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  es.<a class="code" href="classSVF_1_1IntervalESBase.html#adb26b186ee31bce7449a7b36faa24cc2">store</a>(dst, es.<a class="code" href="classSVF_1_1IntervalExeState.html#a960ec3359dfcb5e89fb66120c868ac5e">load</a>(src));</div>
|
|
1711
|
+
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  }</div>
|
|
1712
|
+
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (es.<a class="code" href="classSVF_1_1IntervalExeState.html#af61110c081ca71f9348e8dfff5aa76e4">inLocToAddrsTable</a>(objId))</div>
|
|
1713
|
+
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  {</div>
|
|
1714
|
+
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  es.<a class="code" href="classSVF_1_1ExeState.html#a99f4437a7e350fec131d48f52082d672">storeAddrs</a>(dst, es.<a class="code" href="classSVF_1_1IntervalExeState.html#ad17ceaf8058043151ae0f23b3415458a">loadAddrs</a>(src));</div>
|
|
1715
|
+
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  }</div>
|
|
1716
|
+
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  }</div>
|
|
1717
|
+
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  }</div>
|
|
1718
|
+
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  }</div>
|
|
1719
|
+
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>  }</div>
|
|
1720
|
+
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span> }</div>
|
|
1721
|
+
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  </div>
|
|
1722
|
+
<div class="line"><a name="l01668"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a112519b672206ac552273666949eeb3b"> 1668</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1AEAPI.html#a112519b672206ac552273666949eeb3b">AEAPI::getPointeeElement</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div>
|
|
1723
|
+
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> {</div>
|
|
1724
|
+
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  assert(_ae->_svfir2ExeState->inVarToAddrsTable(<span class="keywordtype">id</span>) && <span class="stringliteral">"id is not in varToAddrsTable"</span>);</div>
|
|
1725
|
+
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  <span class="keywordflow">if</span> (_ae->_svfir2ExeState->inVarToAddrsTable(<span class="keywordtype">id</span>))</div>
|
|
1726
|
+
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  {</div>
|
|
1727
|
+
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a>& addrs = _ae->_svfir2ExeState->getAddrs(<span class="keywordtype">id</span>);</div>
|
|
1728
|
+
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> addr: addrs)</div>
|
|
1729
|
+
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  {</div>
|
|
1730
|
+
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> addr_id = _ae->_svfir2ExeState-><a class="code" href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">getInternalID</a>(addr);</div>
|
|
1731
|
+
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  <span class="keywordflow">if</span> (addr_id == 0) <span class="comment">// nullptr has no memobj, skip</span></div>
|
|
1732
|
+
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  <span class="keywordflow">continue</span>;</div>
|
|
1733
|
+
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  <span class="keywordflow">return</span> SVFUtil::dyn_cast<ObjVar>(_svfir->getGNode(addr_id))->getMemObj()->getType();</div>
|
|
1734
|
+
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>  }</div>
|
|
1735
|
+
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  }</div>
|
|
1736
|
+
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
1737
|
+
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> }</div>
|
|
1738
|
+
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  </div>
|
|
1739
|
+
<div class="line"><a name="l01685"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a185e694007f4d69b0030c65fb54c9c6d"> 1685</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#a185e694007f4d69b0030c65fb54c9c6d">AEAPI::handleMemset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVF::SVFValue</a> *dst, <a class="code" href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a> elem, <a class="code" href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a> len)</div>
|
|
1740
|
+
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span> {</div>
|
|
1741
|
+
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &es = _ae->_svfir2ExeState->getEs();</div>
|
|
1742
|
+
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dstId = _svfir->getValueNode(dst);</div>
|
|
1743
|
+
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = std::min((<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(), (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>) len.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
1744
|
+
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemSize = 1;</div>
|
|
1745
|
+
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <span class="keywordflow">if</span> (dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a330084f9a3deb6e5acb52a8ee3eb7fe4">isArrayTy</a>())</div>
|
|
1746
|
+
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  {</div>
|
|
1747
|
+
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  elemSize = SVFUtil::dyn_cast<SVFArrayType>(dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>())->getTypeOfElement()->getByteSize();</div>
|
|
1748
|
+
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  }</div>
|
|
1749
|
+
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dst-><a class="code" href="classSVF_1_1SVFValue.html#a11f2d9b6e969ede6fca2c204cc15b821">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a870b63af2bf9fe43cdf1df3d56b20f6c">isPointerTy</a>())</div>
|
|
1750
|
+
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  {</div>
|
|
1751
|
+
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemType = getPointeeElement(_svfir->getValueNode(dst)))</div>
|
|
1752
|
+
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  {</div>
|
|
1753
|
+
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  elemSize = elemType->getByteSize();</div>
|
|
1754
|
+
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  }</div>
|
|
1755
|
+
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <span class="keywordflow">else</span></div>
|
|
1756
|
+
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  {</div>
|
|
1757
|
+
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  elemSize = 1;</div>
|
|
1758
|
+
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  }</div>
|
|
1759
|
+
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  }</div>
|
|
1760
|
+
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <span class="keywordflow">else</span></div>
|
|
1761
|
+
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  {</div>
|
|
1762
|
+
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"we cannot support this type"</span>);</div>
|
|
1763
|
+
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  }</div>
|
|
1764
|
+
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  </div>
|
|
1765
|
+
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> range_val = size / elemSize;</div>
|
|
1766
|
+
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < range_val; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>++)</div>
|
|
1767
|
+
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  {</div>
|
|
1768
|
+
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  <span class="comment">// dead loop for string and break if there's a \0. If no \0, it will throw err.</span></div>
|
|
1769
|
+
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>  <span class="keywordflow">if</span> (_ae->_svfir2ExeState->inVarToAddrsTable(dstId))</div>
|
|
1770
|
+
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  {</div>
|
|
1771
|
+
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>  <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a> lhs_gep = _ae->_svfir2ExeState->getGepObjAddress(dstId, <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>);</div>
|
|
1772
|
+
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhs_gep)</div>
|
|
1773
|
+
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>  {</div>
|
|
1774
|
+
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">ExeState::getInternalID</a>(addr);</div>
|
|
1775
|
+
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  <span class="keywordflow">if</span> (es.<a class="code" href="classSVF_1_1IntervalExeState.html#a50aee49f7f34e05f7e2cb28ae55099f8">inLocToValTable</a>(objId))</div>
|
|
1776
|
+
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>  {</div>
|
|
1777
|
+
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> tmp = es.<a class="code" href="classSVF_1_1IntervalExeState.html#a960ec3359dfcb5e89fb66120c868ac5e">load</a>(addr);</div>
|
|
1778
|
+
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>  tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(elem));</div>
|
|
1779
|
+
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>  es.<a class="code" href="classSVF_1_1IntervalESBase.html#adb26b186ee31bce7449a7b36faa24cc2">store</a>(addr, tmp);</div>
|
|
1780
|
+
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>  }</div>
|
|
1781
|
+
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>  <span class="keywordflow">else</span></div>
|
|
1782
|
+
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>  {</div>
|
|
1783
|
+
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  es.<a class="code" href="classSVF_1_1IntervalESBase.html#adb26b186ee31bce7449a7b36faa24cc2">store</a>(addr, <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(elem));</div>
|
|
1784
|
+
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>  }</div>
|
|
1785
|
+
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>  }</div>
|
|
1786
|
+
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>  }</div>
|
|
1787
|
+
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>  <span class="keywordflow">else</span></div>
|
|
1788
|
+
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>  <span class="keywordflow">break</span>;</div>
|
|
1789
|
+
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>  }</div>
|
|
1790
|
+
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span> }</div>
|
|
1791
1791
|
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>  </div>
|
|
1792
1792
|
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>  </div>
|
|
1793
|
-
<div class="line"><a name="l01739"></a><span class="lineno"
|
|
1794
|
-
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> 
|
|
1795
|
-
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> 
|
|
1796
|
-
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> 
|
|
1797
|
-
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span> 
|
|
1798
|
-
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <a class="code" href="
|
|
1799
|
-
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <
|
|
1800
|
-
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span> 
|
|
1801
|
-
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span> 
|
|
1802
|
-
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="
|
|
1803
|
-
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> 
|
|
1804
|
-
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span> 
|
|
1805
|
-
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="
|
|
1806
|
-
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span> 
|
|
1807
|
-
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span> 
|
|
1808
|
-
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span> 
|
|
1809
|
-
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> 
|
|
1810
|
-
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span> 
|
|
1811
|
-
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span> 
|
|
1812
|
-
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span> 
|
|
1813
|
-
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span> 
|
|
1814
|
-
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span> 
|
|
1815
|
-
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span> 
|
|
1816
|
-
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> }</div>
|
|
1817
|
-
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> 
|
|
1818
|
-
<div class="line"><a name="l01764"></a><span class="lineno"
|
|
1819
|
-
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span> 
|
|
1820
|
-
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> 
|
|
1821
|
-
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> 
|
|
1822
|
-
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span> 
|
|
1823
|
-
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span> 
|
|
1824
|
-
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span> 
|
|
1825
|
-
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span> }</div>
|
|
1826
|
-
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> 
|
|
1827
|
-
<div class="line"><a name="l01773"></a><span class="lineno"
|
|
1828
|
-
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span> 
|
|
1829
|
-
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> 
|
|
1830
|
-
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> 
|
|
1831
|
-
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span> 
|
|
1832
|
-
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  <span class="
|
|
1833
|
-
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span> 
|
|
1834
|
-
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span> 
|
|
1835
|
-
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  <
|
|
1836
|
-
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span> 
|
|
1837
|
-
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span> 
|
|
1838
|
-
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <span class="
|
|
1839
|
-
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span> 
|
|
1840
|
-
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> 
|
|
1841
|
-
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span> 
|
|
1842
|
-
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span> 
|
|
1843
|
-
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> 
|
|
1844
|
-
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> 
|
|
1845
|
-
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> }</div>
|
|
1846
|
-
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> 
|
|
1847
|
-
<div class="line"><a name="l01793"></a><span class="lineno"
|
|
1848
|
-
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span> 
|
|
1849
|
-
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  <a class="code" href="
|
|
1850
|
-
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> 
|
|
1851
|
-
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> 
|
|
1852
|
-
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> 
|
|
1853
|
-
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  <
|
|
1854
|
-
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span> 
|
|
1855
|
-
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> 
|
|
1856
|
-
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> 
|
|
1857
|
-
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> 
|
|
1858
|
-
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  callstack.
|
|
1859
|
-
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> 
|
|
1860
|
-
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> 
|
|
1861
|
-
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> 
|
|
1862
|
-
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> 
|
|
1863
|
-
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> 
|
|
1864
|
-
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> 
|
|
1865
|
-
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> 
|
|
1866
|
-
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> 
|
|
1867
|
-
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> 
|
|
1868
|
-
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> 
|
|
1869
|
-
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> 
|
|
1870
|
-
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span> 
|
|
1871
|
-
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span> 
|
|
1872
|
-
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span> 
|
|
1873
|
-
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span> 
|
|
1874
|
-
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> 
|
|
1875
|
-
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span> 
|
|
1876
|
-
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span> 
|
|
1877
|
-
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> 
|
|
1878
|
-
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span> 
|
|
1879
|
-
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> 
|
|
1880
|
-
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> }</div>
|
|
1881
|
-
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> 
|
|
1793
|
+
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>  </div>
|
|
1794
|
+
<div class="line"><a name="l01740"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a7be3da80bedb1077a99d67daa124afde"> 1740</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#a7be3da80bedb1077a99d67daa124afde">AEAPI::AccessMemoryViaRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *callnode, <a class="code" href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList<const SVFValue *></a>& worklist, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFValue *></a>& visited)</div>
|
|
1795
|
+
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span> {</div>
|
|
1796
|
+
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>  <span class="keywordflow">if</span> (callnode-><a class="code" href="classSVF_1_1CallICFGNode.html#ae23a7540609879ac0379fc53b4e7eead">getRetICFGNode</a>()-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>().size() > 0)</div>
|
|
1797
|
+
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>  {</div>
|
|
1798
|
+
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *ret = SVFUtil::dyn_cast<RetPE>(*callnode-><a class="code" href="classSVF_1_1CallICFGNode.html#ae23a7540609879ac0379fc53b4e7eead">getRetICFGNode</a>()-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>().begin());</div>
|
|
1799
|
+
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>  <a class="code" href="classSVF_1_1ValVar.html">SVF::ValVar</a> *ret_gnode = SVFUtil::dyn_cast<ValVar>(_svfir->getGNode(ret-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div>
|
|
1800
|
+
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>  <span class="keywordflow">if</span> (ret_gnode-><a class="code" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">hasIncomingEdges</a>(SVFStmt::PEDGEK::Phi))</div>
|
|
1801
|
+
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>  {</div>
|
|
1802
|
+
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a> &stmt_set = ret_gnode-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(SVFStmt::PEDGEK::Phi);</div>
|
|
1803
|
+
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = stmt_set.begin(); it != stmt_set.end(); ++it)</div>
|
|
1804
|
+
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>  {</div>
|
|
1805
|
+
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt = *it;</div>
|
|
1806
|
+
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi = SVFUtil::dyn_cast<PhiStmt>(stmt))</div>
|
|
1807
|
+
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>  {</div>
|
|
1808
|
+
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>  <span class="keywordflow">if</span> (!visited.count(phi->getOpVar(0)->getValue()))</div>
|
|
1809
|
+
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>  {</div>
|
|
1810
|
+
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(phi->getOpVar(0)->getValue());</div>
|
|
1811
|
+
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>  visited.insert(phi->getOpVar(0)->getValue());</div>
|
|
1812
|
+
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>  }</div>
|
|
1813
|
+
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>  }</div>
|
|
1814
|
+
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>  }</div>
|
|
1815
|
+
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>  }</div>
|
|
1816
|
+
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>  }</div>
|
|
1817
|
+
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span> }</div>
|
|
1818
|
+
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>  </div>
|
|
1819
|
+
<div class="line"><a name="l01765"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#a3665513f6e8f8b93ef3f9d273d03ee70"> 1765</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#a3665513f6e8f8b93ef3f9d273d03ee70">AEAPI::AccessMemoryViaCopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>, <a class="code" href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList<const SVFValue *></a>& worklist, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFValue *></a>& visited)</div>
|
|
1820
|
+
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> {</div>
|
|
1821
|
+
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>  <span class="keywordflow">if</span> (!visited.count(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar()->getValue()))</div>
|
|
1822
|
+
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>  {</div>
|
|
1823
|
+
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>  visited.insert(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar()->getValue());</div>
|
|
1824
|
+
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar()->getValue());</div>
|
|
1825
|
+
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>  }</div>
|
|
1826
|
+
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span> }</div>
|
|
1827
|
+
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>  </div>
|
|
1828
|
+
<div class="line"><a name="l01774"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#afa34cb2ee3fc1ca5aa04a2afe7c2d6e8"> 1774</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#afa34cb2ee3fc1ca5aa04a2afe7c2d6e8">AEAPI::AccessMemoryViaLoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load, <a class="code" href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList<const SVFValue *></a>& worklist, <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFValue *></a>& visited)</div>
|
|
1829
|
+
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span> {</div>
|
|
1830
|
+
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>  <span class="keywordflow">if</span> (_ae->_svfir2ExeState->inVarToAddrsTable(load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()))</div>
|
|
1831
|
+
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>  {</div>
|
|
1832
|
+
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">ExeState::Addrs</a> &Addrs = _ae->_svfir2ExeState->getAddrs(load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>());</div>
|
|
1833
|
+
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> vaddr: Addrs)</div>
|
|
1834
|
+
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>  {</div>
|
|
1835
|
+
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = _ae->_svfir2ExeState-><a class="code" href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">getInternalID</a>(vaddr);</div>
|
|
1836
|
+
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>  <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == 0) <span class="comment">// nullptr has no memobj, skip</span></div>
|
|
1837
|
+
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>  <span class="keywordflow">continue</span>;</div>
|
|
1838
|
+
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>  <span class="keyword">const</span> <span class="keyword">auto</span> *val = _svfir->getGNode(<span class="keywordtype">id</span>);</div>
|
|
1839
|
+
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>  <span class="keywordflow">if</span> (!visited.count(val->getValue()))</div>
|
|
1840
|
+
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>  {</div>
|
|
1841
|
+
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>  visited.insert(val->getValue());</div>
|
|
1842
|
+
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(val->getValue());</div>
|
|
1843
|
+
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>  }</div>
|
|
1844
|
+
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>  }</div>
|
|
1845
|
+
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>  }</div>
|
|
1846
|
+
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span> }</div>
|
|
1847
|
+
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>  </div>
|
|
1848
|
+
<div class="line"><a name="l01794"></a><span class="lineno"><a class="line" href="classSVF_1_1AEAPI.html#ac49859a7848fbef0e29492e95b031f1f"> 1794</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AEAPI.html#ac49859a7848fbef0e29492e95b031f1f">AEAPI::AccessMemoryViaCallArgs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a> *arg,</div>
|
|
1849
|
+
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>  <a class="code" href="classSVF_1_1FILOWorkList.html">SVF::FILOWorkList<const SVFValue *></a> &worklist,</div>
|
|
1850
|
+
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVF::SVFValue *></a> &visited)</div>
|
|
1851
|
+
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> {</div>
|
|
1852
|
+
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>  std::vector<const CallICFGNode *> callstack = _ae->_callSiteStack;</div>
|
|
1853
|
+
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>  <a class="code" href="classSVF_1_1ValVar.html">SVF::ValVar</a> *arg_gnode = SVFUtil::cast<ValVar>(_svfir->getGNode(_svfir->getValueNode(arg)));</div>
|
|
1854
|
+
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>  <span class="keywordflow">if</span> (arg_gnode-><a class="code" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">hasIncomingEdges</a>(SVFStmt::PEDGEK::Call))</div>
|
|
1855
|
+
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>  {</div>
|
|
1856
|
+
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>  <span class="keywordflow">while</span> (!callstack.empty())</div>
|
|
1857
|
+
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>  {</div>
|
|
1858
|
+
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cur_call = callstack.back();</div>
|
|
1859
|
+
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>  callstack.pop_back();</div>
|
|
1860
|
+
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt: cur_call-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
1861
|
+
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  {</div>
|
|
1862
|
+
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast<CallPE>(stmt))</div>
|
|
1863
|
+
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>  {</div>
|
|
1864
|
+
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>  <span class="keywordflow">if</span> (callPE->getLHSVarID() == _svfir->getValueNode(arg))</div>
|
|
1865
|
+
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>  {</div>
|
|
1866
|
+
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyObjVar>(callPE->getRHSVar()) &&</div>
|
|
1867
|
+
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>  !SVFUtil::isa<DummyValVar>(callPE->getRHSVar()))</div>
|
|
1868
|
+
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>  {</div>
|
|
1869
|
+
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>  <span class="keywordflow">if</span> (!visited.count(callPE->getRHSVar()->getValue()))</div>
|
|
1870
|
+
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>  {</div>
|
|
1871
|
+
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>  visited.insert(callPE->getRHSVar()->getValue());</div>
|
|
1872
|
+
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>  worklist.<a class="code" href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">push</a>(callPE->getRHSVar()->getValue());</div>
|
|
1873
|
+
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>  <span class="keywordflow">break</span>;</div>
|
|
1874
|
+
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>  }</div>
|
|
1875
|
+
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>  }</div>
|
|
1876
|
+
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>  }</div>
|
|
1877
|
+
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>  }</div>
|
|
1878
|
+
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>  }</div>
|
|
1879
|
+
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>  }</div>
|
|
1880
|
+
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>  }</div>
|
|
1881
|
+
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> }</div>
|
|
1882
|
+
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>  </div>
|
|
1882
1883
|
</div><!-- fragment --></div><!-- contents -->
|
|
1883
1884
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
1884
1885
|
<div class="ttc" id="aclassSVF_1_1AEAPI_html_afe6d49fd36a96bda165654eb393be6f2"><div class="ttname"><a href="classSVF_1_1AEAPI.html#afe6d49fd36a96bda165654eb393be6f2">SVF::AEAPI::getAllocaInstByteSize</a></div><div class="ttdeci">u32_t getAllocaInstByteSize(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01356">AbstractExecution.cpp:1356</a></div></div>
|
|
@@ -1910,7 +1911,7 @@ $(function() {
|
|
|
1910
1911
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00218">IntervalValue.h:218</a></div></div>
|
|
1911
1912
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
|
|
1912
1913
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
|
|
1913
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a4d160903c3bbedbd486be39c40c2c836"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a4d160903c3bbedbd486be39c40c2c836">SVF::AEAPI::handleStrcat</a></div><div class="ttdeci">virtual void handleStrcat(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
1914
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a4d160903c3bbedbd486be39c40c2c836"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a4d160903c3bbedbd486be39c40c2c836">SVF::AEAPI::handleStrcat</a></div><div class="ttdeci">virtual void handleStrcat(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01575">AbstractExecution.cpp:1575</a></div></div>
|
|
1914
1915
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ac7a25ad5cbc1a6132869ae54b805f73a"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ac7a25ad5cbc1a6132869ae54b805f73a">SVF::AbstractExecution::hasCmpBranchES</a></div><div class="ttdeci">bool hasCmpBranchES(const CmpStmt *cmpStmt, s64_t succ, IntervalExeState &es)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00284">AbstractExecution.cpp:284</a></div></div>
|
|
1915
1916
|
<div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00512">SVFType.h:512</a></div></div>
|
|
1916
1917
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_aab316a63c25483eefc38bed0a86a0e7e"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#aab316a63c25483eefc38bed0a86a0e7e">SVF::IntervalExeState::inVarToValTable</a></div><div class="ttdeci">bool inVarToValTable(u32_t id) const override</div><div class="ttdoc">whether the variable is in varToVal table</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00483">IntervalExeState.h:483</a></div></div>
|
|
@@ -1938,19 +1939,19 @@ $(function() {
|
|
|
1938
1939
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a97c5745ddcd0ce72e65dee09ff7afb42"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a97c5745ddcd0ce72e65dee09ff7afb42">SVF::AbstractExecution::SkipRecursiveCall</a></div><div class="ttdeci">virtual void SkipRecursiveCall(const CallICFGNode *callnode)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00951">AbstractExecution.cpp:951</a></div></div>
|
|
1939
1940
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
1940
1941
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
1941
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ac49859a7848fbef0e29492e95b031f1f"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ac49859a7848fbef0e29492e95b031f1f">SVF::AEAPI::AccessMemoryViaCallArgs</a></div><div class="ttdeci">void AccessMemoryViaCallArgs(const SVF::SVFArgument *arg, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
1942
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ac49859a7848fbef0e29492e95b031f1f"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ac49859a7848fbef0e29492e95b031f1f">SVF::AEAPI::AccessMemoryViaCallArgs</a></div><div class="ttdeci">void AccessMemoryViaCallArgs(const SVF::SVFArgument *arg, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01794">AbstractExecution.cpp:1794</a></div></div>
|
|
1942
1943
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_ab5d7ac23f8334fa32ae0a78c8f1d9fa9"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#ab5d7ac23f8334fa32ae0a78c8f1d9fa9">SVF::IntervalESBase::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00317">IntervalExeState.h:317</a></div></div>
|
|
1943
1944
|
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00558">SVFStatements.h:558</a></div></div>
|
|
1944
1945
|
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a3df0f1b34893f44904dce62e6641a58e"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a3df0f1b34893f44904dce62e6641a58e">SVF::AEAPI::strRead</a></div><div class="ttdeci">std::string strRead(const SVFValue *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01211">AbstractExecution.cpp:1211</a></div></div>
|
|
1945
1946
|
<div class="ttc" id="acJSON_8h_html_a750b5d744c39a06bfb13e6eb010e35d0"><div class="ttname"><a href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00170">cJSON.h:170</a></div></div>
|
|
1946
1947
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
1947
1948
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a87c34d221e5b3ec37e89e8977eb28608"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a87c34d221e5b3ec37e89e8977eb28608">SVF::AbstractExecution::narrowFixpointPass</a></div><div class="ttdeci">bool narrowFixpointPass(const ICFGNode *cycle_head, IntervalExeState &pre_es)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00845">AbstractExecution.cpp:845</a></div></div>
|
|
1948
|
-
<div class="ttc" id="aclassSVF_1_1WTOComponent_html"><div class="ttname"><a href="classSVF_1_1WTOComponent.html">SVF::WTOComponent</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1949
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html"><div class="ttname"><a href="classSVF_1_1WTOComponent.html">SVF::WTOComponent</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00272">WTO.h:272</a></div></div>
|
|
1949
1950
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a523826aede7ad22736beed0c8223b6b0"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">SVF::IntervalValue::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdoc">Return true if the IntervalValue is a number [num, num].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00270">IntervalValue.h:270</a></div></div>
|
|
1950
1951
|
<div class="ttc" id="aclassSVF_1_1ICFGWTO_html"><div class="ttname"><a href="classSVF_1_1ICFGWTO.html">SVF::ICFGWTO</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGWTO_8h_source.html#l00047">ICFGWTO.h:47</a></div></div>
|
|
1951
1952
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00083">IntervalValue.h:83</a></div></div>
|
|
1952
|
-
<div class="ttc" id="aclassSVF_1_1WTO_html_a13e9082913aa4a14065687ccdd47642d"><div class="ttname"><a href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">SVF::WTO::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1953
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_afa34cb2ee3fc1ca5aa04a2afe7c2d6e8"><div class="ttname"><a href="classSVF_1_1AEAPI.html#afa34cb2ee3fc1ca5aa04a2afe7c2d6e8">SVF::AEAPI::AccessMemoryViaLoadStmt</a></div><div class="ttdeci">void AccessMemoryViaLoadStmt(const LoadStmt *load, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
1953
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a13e9082913aa4a14065687ccdd47642d"><div class="ttname"><a href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">SVF::WTO::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00584">WTO.h:584</a></div></div>
|
|
1954
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_afa34cb2ee3fc1ca5aa04a2afe7c2d6e8"><div class="ttname"><a href="classSVF_1_1AEAPI.html#afa34cb2ee3fc1ca5aa04a2afe7c2d6e8">SVF::AEAPI::AccessMemoryViaLoadStmt</a></div><div class="ttdeci">void AccessMemoryViaLoadStmt(const LoadStmt *load, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01774">AbstractExecution.cpp:1774</a></div></div>
|
|
1954
1955
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
1955
1956
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a067bd6dbaf74a028d546fa56b095791b"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">SVF::SVFFunction::getAnnotations</a></div><div class="ttdeci">const std::vector< std::string > & getAnnotations() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00466">SVFValue.h:466</a></div></div>
|
|
1956
1957
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00298">SVFStatements.h:298</a></div></div>
|
|
@@ -1958,7 +1959,7 @@ $(function() {
|
|
|
1958
1959
|
<div class="ttc" id="aclassSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00262">SVFVariables.h:262</a></div></div>
|
|
1959
1960
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html">SVF::SVFIR2ItvExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00044">SVFIR2ItvExeState.h:44</a></div></div>
|
|
1960
1961
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00118">NumericLiteral.h:118</a></div></div>
|
|
1961
|
-
<div class="ttc" id="aclassSVF_1_1WTO_html_a22b67a51964cb1d7882aab7e74b026f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">SVF::WTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1962
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a22b67a51964cb1d7882aab7e74b026f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">SVF::WTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00590">WTO.h:590</a></div></div>
|
|
1962
1963
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00970">SVFStatements.h:970</a></div></div>
|
|
1963
1964
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a1d725fe50a7084bfa18bd47b941af885"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a1d725fe50a7084bfa18bd47b941af885">SVF::AbstractExecution::handleSVFStatement</a></div><div class="ttdeci">virtual void handleSVFStatement(const SVFStmt *stmt)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00892">AbstractExecution.cpp:892</a></div></div>
|
|
1964
1965
|
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a243821a56807acf98be9d88f8947e01d"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a243821a56807acf98be9d88f8947e01d">SVF::AEAPI::initExtFunMap</a></div><div class="ttdeci">virtual void initExtFunMap()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01139">AbstractExecution.cpp:1139</a></div></div>
|
|
@@ -1967,7 +1968,7 @@ $(function() {
|
|
|
1967
1968
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
1968
1969
|
<div class="ttc" id="aclassSVF_1_1Options_html_ad989eab7d521e9933ac8e46e1c29f662"><div class="ttname"><a href="classSVF_1_1Options.html#ad989eab7d521e9933ac8e46e1c29f662">SVF::Options::OutputName</a></div><div class="ttdeci">static const Option< std::string > OutputName</div><div class="ttdoc">bug info output file, Default: output.db</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00269">Options.h:269</a></div></div>
|
|
1969
1970
|
<div class="ttc" id="aextapi_8c_html_adadd6582d46775aab6a51e29d16d9f77"><div class="ttname"><a href="extapi_8c.html#adadd6582d46775aab6a51e29d16d9f77">isupper</a></div><div class="ttdeci">int isupper(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00882">extapi.c:882</a></div></div>
|
|
1970
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ae0519df0b6927a2d077c3d46beeaa9f7"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ae0519df0b6927a2d077c3d46beeaa9f7">SVF::AEAPI::getStrlen</a></div><div class="ttdeci">IntervalValue getStrlen(const SVF::SVFValue *strValue)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
1971
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ae0519df0b6927a2d077c3d46beeaa9f7"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ae0519df0b6927a2d077c3d46beeaa9f7">SVF::AEAPI::getStrlen</a></div><div class="ttdeci">IntervalValue getStrlen(const SVF::SVFValue *strValue)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01521">AbstractExecution.cpp:1521</a></div></div>
|
|
1971
1972
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
1972
1973
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00377">SVFType.h:377</a></div></div>
|
|
1973
1974
|
<div class="ttc" id="aclassSVF_1_1Options_html_ab25f7ec430ba1d41597fc409b758b193"><div class="ttname"><a href="classSVF_1_1Options.html#ab25f7ec430ba1d41597fc409b758b193">SVF::Options::WidenDelay</a></div><div class="ttdeci">static const Option< u32_t > WidenDelay</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00265">Options.h:265</a></div></div>
|
|
@@ -1983,11 +1984,11 @@ $(function() {
|
|
|
1983
1984
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
|
|
1984
1985
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
1985
1986
|
<div class="ttc" id="aextapi_8c_html_a9d60842d6ae065229ba810e6b01110da"><div class="ttname"><a href="extapi_8c.html#a9d60842d6ae065229ba810e6b01110da">ispunct</a></div><div class="ttdeci">int ispunct(int argument)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00872">extapi.c:872</a></div></div>
|
|
1986
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a7be3da80bedb1077a99d67daa124afde"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a7be3da80bedb1077a99d67daa124afde">SVF::AEAPI::AccessMemoryViaRetNode</a></div><div class="ttdeci">void AccessMemoryViaRetNode(const CallICFGNode *callnode, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
1987
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a7be3da80bedb1077a99d67daa124afde"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a7be3da80bedb1077a99d67daa124afde">SVF::AEAPI::AccessMemoryViaRetNode</a></div><div class="ttdeci">void AccessMemoryViaRetNode(const CallICFGNode *callnode, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01740">AbstractExecution.cpp:1740</a></div></div>
|
|
1987
1988
|
<div class="ttc" id="aclassSVF_1_1FILOWorkList_html_afcf3fcda18e8d3e2bad70a51376c0ce1"><div class="ttname"><a href="classSVF_1_1FILOWorkList.html#afcf3fcda18e8d3e2bad70a51376c0ce1">SVF::FILOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00257">WorkList.h:257</a></div></div>
|
|
1988
1989
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a609f7f047d88f8a2f44cd783668dc179"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a609f7f047d88f8a2f44cd783668dc179">SVF::AbstractExecution::handleCycle</a></div><div class="ttdeci">virtual void handleCycle(const ICFGWTOCycle *cycle)</div><div class="ttdoc">handle wto cycle (loop)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00758">AbstractExecution.cpp:758</a></div></div>
|
|
1989
1990
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00225">IntervalValue.h:225</a></div></div>
|
|
1990
|
-
<div class="ttc" id="aclassSVF_1_1WTONode_html"><div class="ttname"><a href="classSVF_1_1WTONode.html">SVF::WTONode</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
1991
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html"><div class="ttname"><a href="classSVF_1_1WTONode.html">SVF::WTONode</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00046">WTO.h:46</a></div></div>
|
|
1991
1992
|
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00856">SVFValue.h:856</a></div></div>
|
|
1992
1993
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a3be7a2e3ec3215b67cd60f122d2cd10e"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a3be7a2e3ec3215b67cd60f122d2cd10e">SVF::AddressValue::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00217">AddressValue.h:217</a></div></div>
|
|
1993
1994
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ae641b5687513661a2542e8318430d760"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ae641b5687513661a2542e8318430d760">SVF::AbstractExecution::markRecursiveFuns</a></div><div class="ttdeci">void markRecursiveFuns()</div><div class="ttdoc">mark recursive functions by detecting SCC in callgraph</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00143">AbstractExecution.cpp:143</a></div></div>
|
|
@@ -1996,7 +1997,7 @@ $(function() {
|
|
|
1996
1997
|
<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>
|
|
1997
1998
|
<div class="ttc" id="aclassSVF_1_1AEStat_html_ae2cfe939670689a4ec5030c096a5f546"><div class="ttname"><a href="classSVF_1_1AEStat.html#ae2cfe939670689a4ec5030c096a5f546">SVF::AEStat::countStateSize</a></div><div class="ttdeci">void countStateSize()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01015">AbstractExecution.cpp:1015</a></div></div>
|
|
1998
1999
|
<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>
|
|
1999
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a807c883d1cfe98c791c903125742f95b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">SVF::WTOCycle::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
2000
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a807c883d1cfe98c791c903125742f95b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">SVF::WTOCycle::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00418">WTO.h:418</a></div></div>
|
|
2000
2001
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a2657751b285cb6db8084da38b00dcab9"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a2657751b285cb6db8084da38b00dcab9">SVF::IntraCFGEdge::getCondition</a></div><div class="ttdeci">const SVFValue * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00140">ICFGEdge.h:140</a></div></div>
|
|
2001
2002
|
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00437">SVFStatements.h:437</a></div></div>
|
|
2002
2003
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_acf4a6c3fe5a2239512acb791b9aba854"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#acf4a6c3fe5a2239512acb791b9aba854">SVF::AbstractExecution::extCallPass</a></div><div class="ttdeci">virtual void extCallPass(const CallICFGNode *callNode)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00650">AbstractExecution.cpp:650</a></div></div>
|
|
@@ -2009,7 +2010,7 @@ $(function() {
|
|
|
2009
2010
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a46ef74cd1412790b088f1d7320f57a9f"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a46ef74cd1412790b088f1d7320f57a9f">SVF::IntervalExeState::joinWith</a></div><div class="ttdeci">void joinWith(const IntervalExeState &other)</div><div class="ttdoc">domain join with other, important! other widen this.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8cpp_source.html#l00297">IntervalExeState.cpp:297</a></div></div>
|
|
2010
2011
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_aec702d92bbba9e847a9b3eada060a2c5"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#aec702d92bbba9e847a9b3eada060a2c5">SVF::AbstractExecution::isDirectCall</a></div><div class="ttdeci">virtual bool isDirectCall(const CallICFGNode *callNode)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00681">AbstractExecution.cpp:681</a></div></div>
|
|
2011
2012
|
<div class="ttc" id="aextapi_8c_html_a0008a4e8e7889734dc1d83297de07158"><div class="ttname"><a href="extapi_8c.html#a0008a4e8e7889734dc1d83297de07158">iscntrl</a></div><div class="ttdeci">int iscntrl(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00847">extapi.c:847</a></div></div>
|
|
2012
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ae0847fb421538982bfd50cc280d1a65b"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ae0847fb421538982bfd50cc280d1a65b">SVF::AEAPI::handleMemcpy</a></div><div class="ttdeci">virtual void handleMemcpy(const SVFValue *dst, const SVFValue *src, IntervalValue len, u32_t start_idx)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
2013
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ae0847fb421538982bfd50cc280d1a65b"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ae0847fb421538982bfd50cc280d1a65b">SVF::AEAPI::handleMemcpy</a></div><div class="ttdeci">virtual void handleMemcpy(const SVFValue *dst, const SVFValue *src, IntervalValue len, u32_t start_idx)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01611">AbstractExecution.cpp:1611</a></div></div>
|
|
2013
2014
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00047">GeneralType.h:47</a></div></div>
|
|
2014
2015
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00115">AddressValue.h:115</a></div></div>
|
|
2015
2016
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00474">SVFStatements.h:474</a></div></div>
|
|
@@ -2019,12 +2020,12 @@ $(function() {
|
|
|
2019
2020
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_accf5896d39647e41e1408fa90935b650"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#accf5896d39647e41e1408fa90935b650">SVF::AbstractExecution::indirectCallFunPass</a></div><div class="ttdeci">virtual void indirectCallFunPass(const CallICFGNode *callNode)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00708">AbstractExecution.cpp:708</a></div></div>
|
|
2020
2021
|
<div class="ttc" id="aclassSVF_1_1ExeState_html_ab72f3bc855feeda75e11768ab03ad84e"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">SVF::ExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00284">ExeState.h:284</a></div></div>
|
|
2021
2022
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a714fa1f4794008f630de415414cf8bfd"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a714fa1f4794008f630de415414cf8bfd">SVF::AbstractExecution::handleICFGNode</a></div><div class="ttdeci">virtual void handleICFGNode(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00737">AbstractExecution.cpp:737</a></div></div>
|
|
2022
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a185e694007f4d69b0030c65fb54c9c6d"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a185e694007f4d69b0030c65fb54c9c6d">SVF::AEAPI::handleMemset</a></div><div class="ttdeci">virtual void handleMemset(const SVFValue *dst, IntervalValue elem, IntervalValue len)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
2023
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a185e694007f4d69b0030c65fb54c9c6d"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a185e694007f4d69b0030c65fb54c9c6d">SVF::AEAPI::handleMemset</a></div><div class="ttdeci">virtual void handleMemset(const SVFValue *dst, IntervalValue elem, IntervalValue len)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01685">AbstractExecution.cpp:1685</a></div></div>
|
|
2023
2024
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa027be2f9243ce4cae799b265b019443"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">SVF::IntervalValue::bottom</a></div><div class="ttdeci">static IntervalValue bottom()</div><div class="ttdoc">Create the bottom IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00089">IntervalValue.h:89</a></div></div>
|
|
2024
2025
|
<div class="ttc" id="aclassSVF_1_1AEAPI_html_af64d742317f2ddad87b87012225ddaaa"><div class="ttname"><a href="classSVF_1_1AEAPI.html#af64d742317f2ddad87b87012225ddaaa">SVF::AEAPI::handleExtAPI</a></div><div class="ttdeci">virtual void handleExtAPI(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01240">AbstractExecution.cpp:1240</a></div></div>
|
|
2025
2026
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a1b2ea55ebd7c09a83bf1051c0c189bb8"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a1b2ea55ebd7c09a83bf1051c0c189bb8">SVF::AbstractExecution::isGlobalEntry</a></div><div class="ttdeci">bool isGlobalEntry(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00272">AbstractExecution.cpp:272</a></div></div>
|
|
2026
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycle_html"><div class="ttname"><a href="classSVF_1_1WTOCycle.html">SVF::WTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
2027
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a4efc7447db13da26ce284218d6c01059"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a4efc7447db13da26ce284218d6c01059">SVF::AEAPI::traceMemoryAllocationSize</a></div><div class="ttdeci">IntervalValue traceMemoryAllocationSize(const SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
2027
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html"><div class="ttname"><a href="classSVF_1_1WTOCycle.html">SVF::WTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00048">WTO.h:48</a></div></div>
|
|
2028
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a4efc7447db13da26ce284218d6c01059"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a4efc7447db13da26ce284218d6c01059">SVF::AEAPI::traceMemoryAllocationSize</a></div><div class="ttdeci">IntervalValue traceMemoryAllocationSize(const SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01389">AbstractExecution.cpp:1389</a></div></div>
|
|
2028
2029
|
<div class="ttc" id="aextapi_8c_html_aaecd098576b00440124c44580144e8d5"><div class="ttname"><a href="extapi_8c.html#aaecd098576b00440124c44580144e8d5">isblank</a></div><div class="ttdeci">int isblank(int character)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00842">extapi.c:842</a></div></div>
|
|
2029
2030
|
<div class="ttc" id="aclassSVF_1_1SCCDetection_html"><div class="ttname"><a href="classSVF_1_1SCCDetection.html">SVF::SCCDetection</a></div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00054">SCC.h:54</a></div></div>
|
|
2030
2031
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00197">GenericGraph.h:197</a></div></div>
|
|
@@ -2050,7 +2051,7 @@ $(function() {
|
|
|
2050
2051
|
<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>
|
|
2051
2052
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html_a106513578790247f9d96e34c8385b3d8"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a106513578790247f9d96e34c8385b3d8">SVF::IntraCFGEdge::getSuccessorCondValue</a></div><div class="ttdeci">s64_t getSuccessorCondValue() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00145">ICFGEdge.h:145</a></div></div>
|
|
2052
2053
|
<div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
|
|
2053
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a03fd55dd34c48d22cefcaf6dc93f734a"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">SVF::WTOCycle::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
2054
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a03fd55dd34c48d22cefcaf6dc93f734a"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">SVF::WTOCycle::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00424">WTO.h:424</a></div></div>
|
|
2054
2055
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
2055
2056
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a6771ac262e5fdbac0006b293cde47398"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a6771ac262e5fdbac0006b293cde47398">SVF::AbstractExecution::~AbstractExecution</a></div><div class="ttdeci">virtual ~AbstractExecution()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00133">AbstractExecution.cpp:133</a></div></div>
|
|
2056
2057
|
<div class="ttc" id="aclassSVF_1_1CallSite_html_ac2a0091dab3543a398da890b947e42ef"><div class="ttname"><a href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">SVF::CallSite::getInstruction</a></div><div class="ttdeci">const SVFInstruction * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01128">SVFValue.h:1128</a></div></div>
|
|
@@ -2070,7 +2071,7 @@ $(function() {
|
|
|
2070
2071
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00289">SVFStatements.cpp:289</a></div></div>
|
|
2071
2072
|
<div class="ttc" id="aclassSVF_1_1IntervalESBase_html_a903797577ba99ef57879774a3849bbfe"><div class="ttname"><a href="classSVF_1_1IntervalESBase.html#a903797577ba99ef57879774a3849bbfe">SVF::IntervalESBase::getVarToVal</a></div><div class="ttdeci">const VarToValMap & getVarToVal() const</div><div class="ttdoc">get var2val map</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00189">IntervalExeState.h:189</a></div></div>
|
|
2072
2073
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a76964ef7d4842a469d7720881499d8a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">SVF::SVFVar::getIncomingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy & getIncomingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get incoming SVFIR statements (edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00148">SVFVariables.h:148</a></div></div>
|
|
2073
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_ace60ecb07603681de5c3020d0d3c5079"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">SVF::WTOCycle::head</a></div><div class="ttdeci">const NodeT * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#
|
|
2074
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_ace60ecb07603681de5c3020d0d3c5079"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">SVF::WTOCycle::head</a></div><div class="ttdeci">const NodeT * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00412">WTO.h:412</a></div></div>
|
|
2074
2075
|
<div class="ttc" id="aclassSVF_1_1AEStat_html_a5b246c2175c44454236242dcf426f21f"><div class="ttname"><a href="classSVF_1_1AEStat.html#a5b246c2175c44454236242dcf426f21f">SVF::AEStat::finializeStat</a></div><div class="ttdeci">void finializeStat()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01035">AbstractExecution.cpp:1035</a></div></div>
|
|
2075
2076
|
<div class="ttc" id="aextapi_8c_html_a84b34b0058324ae5c0eae4956cf00cc5"><div class="ttname"><a href="extapi_8c.html#a84b34b0058324ae5c0eae4956cf00cc5">isspace</a></div><div class="ttdeci">int isspace(char c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00877">extapi.c:877</a></div></div>
|
|
2076
2077
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00631">SVFValue.h:631</a></div></div>
|
|
@@ -2090,14 +2091,14 @@ $(function() {
|
|
|
2090
2091
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00193">GenericGraph.h:193</a></div></div>
|
|
2091
2092
|
<div class="ttc" id="acJSON_8h_html_ad43c3812e6d13e0518d9f8b8f463ffcf"><div class="ttname"><a href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a></div><div class="ttdeci">int count</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00216">cJSON.h:216</a></div></div>
|
|
2092
2093
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00345">IntervalValue.h:345</a></div></div>
|
|
2093
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a112519b672206ac552273666949eeb3b"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a112519b672206ac552273666949eeb3b">SVF::AEAPI::getPointeeElement</a></div><div class="ttdeci">const SVFType * getPointeeElement(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
2094
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a112519b672206ac552273666949eeb3b"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a112519b672206ac552273666949eeb3b">SVF::AEAPI::getPointeeElement</a></div><div class="ttdeci">const SVFType * getPointeeElement(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01668">AbstractExecution.cpp:1668</a></div></div>
|
|
2094
2095
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ac848658bb3069193b1c7b08199b3d4c7"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ac848658bb3069193b1c7b08199b3d4c7">SVF::AbstractExecution::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(ICFG *icfg)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00091">AbstractExecution.cpp:91</a></div></div>
|
|
2095
2096
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
|
|
2096
2097
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a4bf7be47ddc0ba53ec4a5e87f300763f"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a4bf7be47ddc0ba53ec4a5e87f300763f">SVF::AbstractExecution::initExtAPI</a></div><div class="ttdeci">virtual void initExtAPI()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00086">AbstractExecution.cpp:86</a></div></div>
|
|
2097
2098
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
2098
2099
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a7efff2047b2b6017fdd210a8679817cd"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a7efff2047b2b6017fdd210a8679817cd">SVF::AbstractExecution::handleGlobalNode</a></div><div class="ttdeci">virtual void handleGlobalNode()</div><div class="ttdoc">Global ICFGNode is handled at the entry of the program,.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00168">AbstractExecution.cpp:168</a></div></div>
|
|
2099
2100
|
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ad1baaa8eaad68b215f63941776e79ccf"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ad1baaa8eaad68b215f63941776e79ccf">SVF::AbstractExecution::isIndirectCall</a></div><div class="ttdeci">virtual bool isIndirectCall(const CallICFGNode *callNode)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l00702">AbstractExecution.cpp:702</a></div></div>
|
|
2100
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a3665513f6e8f8b93ef3f9d273d03ee70"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a3665513f6e8f8b93ef3f9d273d03ee70">SVF::AEAPI::AccessMemoryViaCopyStmt</a></div><div class="ttdeci">void AccessMemoryViaCopyStmt(const CopyStmt *copy, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#
|
|
2101
|
+
<div class="ttc" id="aclassSVF_1_1AEAPI_html_a3665513f6e8f8b93ef3f9d273d03ee70"><div class="ttname"><a href="classSVF_1_1AEAPI.html#a3665513f6e8f8b93ef3f9d273d03ee70">SVF::AEAPI::AccessMemoryViaCopyStmt</a></div><div class="ttdeci">void AccessMemoryViaCopyStmt(const CopyStmt *copy, SVF::FILOWorkList< const SVFValue * > &worklist, Set< const SVFValue * > &visited)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8cpp_source.html#l01765">AbstractExecution.cpp:1765</a></div></div>
|
|
2101
2102
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00105">AddressValue.h:105</a></div></div>
|
|
2102
2103
|
<!-- start footer part -->
|
|
2103
2104
|
<hr class="footer"/><address class="footer"><small>
|