svf-tools 1.0.769 → 1.0.771
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BasicTypes_8h.html +4 -0
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +120 -114
- package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +60 -67
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +9 -9
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1148 -1112
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +4 -0
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +61 -51
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +367 -362
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +10 -10
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +10 -11
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h.html +0 -12
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +300 -333
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -60
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/html/cJSON_8cpp.html +3 -2
- package/SVF-doxygen/html/html/cJSON_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/classOption.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +51 -56
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +357 -354
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +49 -59
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
- package/SVF-doxygen/html/html/extapi_8c.html +1487 -302
- package/SVF-doxygen/html/html/extapi_8c_source.html +1120 -1164
- package/SVF-doxygen/html/html/functions_func_h.html +1 -1
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/globals.html +20 -2
- package/SVF-doxygen/html/html/globals_a.html +3 -0
- package/SVF-doxygen/html/html/globals_b.html +10 -4
- package/SVF-doxygen/html/html/globals_c.html +8 -4
- package/SVF-doxygen/html/html/globals_d.html +9 -0
- package/SVF-doxygen/html/html/globals_defs.html +3 -0
- package/SVF-doxygen/html/html/globals_func.html +18 -399
- package/SVF-doxygen/html/html/globals_func_a.html +91 -0
- package/SVF-doxygen/html/html/globals_func_b.html +14 -20
- package/SVF-doxygen/html/html/globals_func_c.html +16 -849
- package/SVF-doxygen/html/html/globals_func_d.html +14 -275
- package/SVF-doxygen/html/html/globals_func_e.html +8 -97
- package/SVF-doxygen/html/html/globals_func_f.html +17 -20
- package/SVF-doxygen/html/html/globals_func_g.html +72 -25
- package/SVF-doxygen/html/html/globals_func_h.html +9 -6
- package/SVF-doxygen/html/html/globals_func_i.html +49 -31
- package/SVF-doxygen/html/html/globals_func_j.html +79 -0
- package/SVF-doxygen/html/html/globals_func_l.html +15 -9
- package/SVF-doxygen/html/html/globals_func_m.html +13 -87
- package/SVF-doxygen/html/html/globals_func_n.html +79 -0
- package/SVF-doxygen/html/html/globals_func_p.html +13 -22
- package/SVF-doxygen/html/html/globals_func_r.html +16 -28
- package/SVF-doxygen/html/html/globals_func_s.html +32 -128
- package/SVF-doxygen/html/html/globals_func_t.html +18 -9
- package/SVF-doxygen/html/html/globals_func_u.html +8 -18
- package/SVF-doxygen/html/html/globals_func_w.html +8 -5
- package/SVF-doxygen/html/html/globals_func_z.html +10 -73
- package/SVF-doxygen/html/html/globals_g.html +54 -0
- package/SVF-doxygen/html/html/globals_l.html +6 -0
- package/SVF-doxygen/html/html/globals_n.html +5 -2
- package/SVF-doxygen/html/html/globals_p.html +4 -1
- package/SVF-doxygen/html/html/globals_r.html +11 -8
- package/SVF-doxygen/html/html/globals_s.html +6 -0
- package/SVF-doxygen/html/html/globals_t.html +6 -0
- package/SVF-doxygen/html/html/globals_z.html +3 -0
- package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +20 -17
- package/SVF-doxygen/html/html/namespaceSVF.html +60 -24
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1087 -986
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +206 -383
- package/SVF-doxygen/html/html/namespacemembers_func_g.html +9 -3
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +2 -11
- package/SVF-doxygen/html/html/namespacemembers_g.html +11 -5
- package/SVF-doxygen/html/html/namespacemembers_i.html +5 -14
- package/SVF-doxygen/html/html/namespacemembers_s.html +6 -0
- package/SVF-doxygen/html/html/namespacemembers_type_s.html +6 -0
- package/SVF-doxygen/html/html/search/all_0.js +158 -152
- package/SVF-doxygen/html/html/search/all_1.js +478 -477
- package/SVF-doxygen/html/html/search/all_10.js +324 -323
- package/SVF-doxygen/html/html/search/all_11.js +213 -212
- package/SVF-doxygen/html/html/search/all_12.js +541 -537
- package/SVF-doxygen/html/html/search/all_13.js +190 -188
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +11 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_2.js +161 -159
- package/SVF-doxygen/html/html/search/all_3.js +628 -627
- package/SVF-doxygen/html/html/search/all_4.js +229 -226
- package/SVF-doxygen/html/html/search/all_5.js +117 -117
- package/SVF-doxygen/html/html/search/all_6.js +224 -224
- package/SVF-doxygen/html/html/search/all_7.js +1022 -1002
- package/SVF-doxygen/html/html/search/all_8.js +191 -191
- package/SVF-doxygen/html/html/search/all_9.js +602 -605
- package/SVF-doxygen/html/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +116 -114
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -205
- package/SVF-doxygen/html/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +8 -8
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/html/search/defines_e.js +7 -6
- package/SVF-doxygen/html/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +49 -49
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +12 -6
- package/SVF-doxygen/html/html/search/functions_1.js +350 -349
- package/SVF-doxygen/html/html/search/functions_10.js +140 -139
- package/SVF-doxygen/html/html/search/functions_11.js +127 -126
- package/SVF-doxygen/html/html/search/functions_12.js +275 -274
- package/SVF-doxygen/html/html/search/functions_13.js +58 -56
- package/SVF-doxygen/html/html/search/functions_14.js +38 -38
- package/SVF-doxygen/html/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/html/search/functions_16.js +29 -29
- package/SVF-doxygen/html/html/search/functions_17.js +3 -2
- package/SVF-doxygen/html/html/search/functions_18.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +84 -82
- package/SVF-doxygen/html/html/search/functions_3.js +253 -252
- package/SVF-doxygen/html/html/search/functions_4.js +74 -71
- package/SVF-doxygen/html/html/search/functions_5.js +51 -51
- package/SVF-doxygen/html/html/search/functions_6.js +58 -58
- package/SVF-doxygen/html/html/search/functions_7.js +842 -822
- package/SVF-doxygen/html/html/search/functions_8.js +143 -143
- package/SVF-doxygen/html/html/search/functions_9.js +422 -425
- package/SVF-doxygen/html/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/html/search/functions_c.js +26 -24
- package/SVF-doxygen/html/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/html/search/functions_e.js +35 -34
- package/SVF-doxygen/html/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +62 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +147 -147
- package/SVF-doxygen/html/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +34 -34
- package/SVF-doxygen/html/html/search/variables_3.js +141 -141
- package/SVF-doxygen/html/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/html/search/variables_5.js +38 -38
- package/SVF-doxygen/html/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/Util/SVFUtil.h +0 -34
- package/svf/lib/Util/ExtAPI.cpp +0 -6
- package/svf-llvm/include/SVF-LLVM/BasicTypes.h +4 -0
- package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +51 -2
- package/svf-llvm/lib/LLVMUtil.cpp +37 -2
- package/svf-llvm/lib/SVFIRBuilder.cpp +10 -9
- package/svf-llvm/lib/SVFIRExtAPI.cpp +1 -1
- package/svf-llvm/lib/SymbolTableBuilder.cpp +0 -9
- package/svf-llvm/lib/extapi.c +210 -295
|
@@ -418,7 +418,7 @@ Functions</h2></td></tr>
|
|
|
418
418
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00169">SVFIR.h:169</a></div></div>
|
|
419
419
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
420
420
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
421
|
-
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
421
|
+
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01194">LLVMUtil.cpp:1194</a></div></div>
|
|
422
422
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
423
423
|
<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>
|
|
424
424
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
@@ -283,7 +283,7 @@ $(function() {
|
|
|
283
283
|
<div class="ttc" id="asvf-ex_8cpp_html_ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"><div class="ttname"><a href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">aliasQuery</a></div><div class="ttdeci">SVF::AliasResult aliasQuery(PointerAnalysis *pta, SVFValue *v1, SVFValue *v2)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00042">svf-ex.cpp:42</a></div></div>
|
|
284
284
|
<div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
|
|
285
285
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
286
|
-
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#
|
|
286
|
+
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01194">LLVMUtil.cpp:1194</a></div></div>
|
|
287
287
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
|
|
288
288
|
<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>
|
|
289
289
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.771",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -350,14 +350,6 @@ inline bool isReallocExtFun(const SVFFunction* fun)
|
|
|
350
350
|
return fun && (ExtAPI::getExtAPI()->is_realloc(fun));
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
-
/// Return true if the call is a static global call
|
|
354
|
-
//@{
|
|
355
|
-
/// note that this function is not suppose to be used externally
|
|
356
|
-
inline bool isStaticExtFun(const SVFFunction* fun)
|
|
357
|
-
{
|
|
358
|
-
return fun && ExtAPI::getExtAPI()->has_static(fun);
|
|
359
|
-
}
|
|
360
|
-
|
|
361
353
|
/// Program entry function e.g. main
|
|
362
354
|
//@{
|
|
363
355
|
/// Return true if this is a program entry function (e.g. main)
|
|
@@ -494,32 +486,6 @@ inline bool isReallocExtCall(const SVFInstruction *inst)
|
|
|
494
486
|
}
|
|
495
487
|
//@}
|
|
496
488
|
|
|
497
|
-
inline bool isStaticExtCall(const CallSite cs)
|
|
498
|
-
{
|
|
499
|
-
bool isPtrTy = cs.getInstruction()->getType()->isPointerTy();
|
|
500
|
-
return isPtrTy && isStaticExtFun(getCallee(cs));
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
inline bool isStaticExtCall(const SVFInstruction *inst)
|
|
504
|
-
{
|
|
505
|
-
bool isPtrTy = inst->getType()->isPointerTy();
|
|
506
|
-
return isPtrTy && isStaticExtFun(getCallee(inst));
|
|
507
|
-
}
|
|
508
|
-
//@}
|
|
509
|
-
|
|
510
|
-
/// Return true if the call is a static global call
|
|
511
|
-
//@{
|
|
512
|
-
inline bool isHeapAllocOrStaticExtCall(const CallSite cs)
|
|
513
|
-
{
|
|
514
|
-
return isStaticExtCall(cs) || isHeapAllocExtCall(cs);
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
inline bool isHeapAllocOrStaticExtCall(const SVFInstruction *inst)
|
|
518
|
-
{
|
|
519
|
-
return isStaticExtCall(inst) || isHeapAllocExtCall(inst);
|
|
520
|
-
}
|
|
521
|
-
//@}
|
|
522
|
-
|
|
523
489
|
/// Return true if this is a thread creation call
|
|
524
490
|
///@{
|
|
525
491
|
inline bool isThreadForkCall(const CallSite cs)
|
package/svf/lib/Util/ExtAPI.cpp
CHANGED
|
@@ -144,12 +144,6 @@ bool ExtAPI::hasExtFuncAnnotation(const SVFFunction* fun, const std::string& fun
|
|
|
144
144
|
return false;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
// Does (F) have a static var X (unavailable to us) that its return points to?
|
|
148
|
-
bool ExtAPI::has_static(const SVFFunction* F)
|
|
149
|
-
{
|
|
150
|
-
return F && hasExtFuncAnnotation(F, "STATIC");
|
|
151
|
-
}
|
|
152
|
-
|
|
153
147
|
bool ExtAPI::is_memcpy(const SVFFunction *F)
|
|
154
148
|
{
|
|
155
149
|
return F && hasExtFuncAnnotation(F, "MEMCPY");
|
|
@@ -178,6 +178,10 @@ typedef llvm::BinaryOperator BinaryOperator;
|
|
|
178
178
|
typedef llvm::UnaryOperator UnaryOperator;
|
|
179
179
|
typedef llvm::UndefValue UndefValue;
|
|
180
180
|
|
|
181
|
+
// Related to Switch Case
|
|
182
|
+
typedef std::pair<const BasicBlock*, const ConstantInt*> SuccBBAndCondValPair;
|
|
183
|
+
typedef std::vector<SuccBBAndCondValPair> SuccBBAndCondValPairVec;
|
|
184
|
+
|
|
181
185
|
// LLVM Intrinsic Instructions
|
|
182
186
|
#if LLVM_VERSION_MAJOR >= 13
|
|
183
187
|
typedef llvm::IntrinsicInst IntrinsicInst;
|
|
@@ -141,10 +141,10 @@ inline const PointerType *getRefTypeOfHeapAllocOrStatic(const CallBase* cs)
|
|
|
141
141
|
if (const PointerType *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))
|
|
142
142
|
refType = SVFUtil::dyn_cast<PointerType>(getPtrElementType(argType));
|
|
143
143
|
}
|
|
144
|
-
// Case 2: heap
|
|
144
|
+
// Case 2: heap object held by return value.
|
|
145
145
|
else
|
|
146
146
|
{
|
|
147
|
-
assert(
|
|
147
|
+
assert(SVFUtil::isHeapAllocExtCallViaRet(svfcs)
|
|
148
148
|
&& "Must be heap alloc via ret, or static allocation site");
|
|
149
149
|
refType = SVFUtil::dyn_cast<PointerType>(cs->getType());
|
|
150
150
|
}
|
|
@@ -519,6 +519,55 @@ std::string llvmToString(const T& val)
|
|
|
519
519
|
llvm::raw_string_ostream(str) << val;
|
|
520
520
|
return str;
|
|
521
521
|
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* See more: https://github.com/SVF-tools/SVF/pull/1191
|
|
525
|
+
*
|
|
526
|
+
* Given the code:
|
|
527
|
+
*
|
|
528
|
+
* switch (a) {
|
|
529
|
+
* case 0: printf("0\n"); break;
|
|
530
|
+
* case 1:
|
|
531
|
+
* case 2:
|
|
532
|
+
* case 3: printf("a >=1 && a <= 3\n"); break;
|
|
533
|
+
* case 4:
|
|
534
|
+
* case 6:
|
|
535
|
+
* case 7: printf("a >= 4 && a <=7\n"); break;
|
|
536
|
+
* default: printf("a < 0 || a > 7"); break;
|
|
537
|
+
* }
|
|
538
|
+
*
|
|
539
|
+
* Generate the IR:
|
|
540
|
+
*
|
|
541
|
+
* switch i32 %0, label %sw.default [
|
|
542
|
+
* i32 0, label %sw.bb
|
|
543
|
+
* i32 1, label %sw.bb1
|
|
544
|
+
* i32 2, label %sw.bb1
|
|
545
|
+
* i32 3, label %sw.bb1
|
|
546
|
+
* i32 4, label %sw.bb3
|
|
547
|
+
* i32 6, label %sw.bb3
|
|
548
|
+
* i32 7, label %sw.bb3
|
|
549
|
+
* ]
|
|
550
|
+
*
|
|
551
|
+
* We can get every case basic block and related case value:
|
|
552
|
+
* [
|
|
553
|
+
* {%sw.default, -1},
|
|
554
|
+
* {%sw.bb, 0},
|
|
555
|
+
* {%sw.bb1, 1},
|
|
556
|
+
* {%sw.bb1, 2},
|
|
557
|
+
* {%sw.bb1, 3},
|
|
558
|
+
* {%sw.bb3, 4},
|
|
559
|
+
* {%sw.bb3, 6},
|
|
560
|
+
* {%sw.bb3, 7},
|
|
561
|
+
* ]
|
|
562
|
+
* Note: default case value is nullptr
|
|
563
|
+
*/
|
|
564
|
+
void getSuccBBandCondValPairVec(const SwitchInst &switchInst, SuccBBAndCondValPairVec &vec);
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Note: default case value is nullptr
|
|
568
|
+
*/
|
|
569
|
+
s64_t getCaseValue(const SwitchInst &switchInst, SuccBBAndCondValPair &succBB2CondVal);
|
|
570
|
+
|
|
522
571
|
} // End namespace LLVMUtil
|
|
523
572
|
|
|
524
573
|
} // End namespace SVF
|
|
@@ -53,8 +53,6 @@ const std::string structName = "struct.";
|
|
|
53
53
|
*/
|
|
54
54
|
bool LLVMUtil::isObject(const Value* ref)
|
|
55
55
|
{
|
|
56
|
-
if (SVFUtil::isa<Instruction>(ref) && SVFUtil::isStaticExtCall(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(SVFUtil::cast<Instruction>(ref))) )
|
|
57
|
-
return true;
|
|
58
56
|
if (SVFUtil::isa<Instruction>(ref) && SVFUtil::isHeapAllocExtCallViaRet(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(SVFUtil::cast<Instruction>(ref))))
|
|
59
57
|
return true;
|
|
60
58
|
if (SVFUtil::isa<GlobalVariable>(ref))
|
|
@@ -1154,6 +1152,43 @@ s32_t LLVMUtil::getVCallIdx(const CallBase* cs)
|
|
|
1154
1152
|
return idx_value;
|
|
1155
1153
|
}
|
|
1156
1154
|
|
|
1155
|
+
void LLVMUtil::getSuccBBandCondValPairVec(const SwitchInst &switchInst, SuccBBAndCondValPairVec &vec)
|
|
1156
|
+
{
|
|
1157
|
+
// get default successor basic block and default case value (nullptr)
|
|
1158
|
+
vec.push_back({switchInst.getDefaultDest(), nullptr});
|
|
1159
|
+
|
|
1160
|
+
// get normal case value and it's successor basic block
|
|
1161
|
+
for (const auto& cs : switchInst.cases())
|
|
1162
|
+
vec.push_back({cs.getCaseSuccessor(), cs.getCaseValue()});
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
s64_t LLVMUtil::getCaseValue(const SwitchInst &switchInst, SuccBBAndCondValPair &succBB2CondVal)
|
|
1166
|
+
{
|
|
1167
|
+
const BasicBlock* succBB = succBB2CondVal.first;
|
|
1168
|
+
const ConstantInt* caseValue = succBB2CondVal.second;
|
|
1169
|
+
s64_t val;
|
|
1170
|
+
if (caseValue == nullptr || succBB == switchInst.getDefaultDest())
|
|
1171
|
+
{
|
|
1172
|
+
/// default case value is set to -1
|
|
1173
|
+
val = -1;
|
|
1174
|
+
}
|
|
1175
|
+
else
|
|
1176
|
+
{
|
|
1177
|
+
/// get normal case value
|
|
1178
|
+
if (caseValue->getBitWidth() <= 64)
|
|
1179
|
+
{
|
|
1180
|
+
val = caseValue->getSExtValue();
|
|
1181
|
+
}
|
|
1182
|
+
else
|
|
1183
|
+
{
|
|
1184
|
+
/// For larger number, we preserve case value just -1 now
|
|
1185
|
+
/// see more: https://github.com/SVF-tools/SVF/pull/992
|
|
1186
|
+
val = -1;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
return val;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1157
1192
|
namespace SVF
|
|
1158
1193
|
{
|
|
1159
1194
|
std::string SVFValue::toString() const
|
|
@@ -946,19 +946,20 @@ void SVFIRBuilder::visitSwitchInst(SwitchInst &inst)
|
|
|
946
946
|
NodeID cond = getValueNode(inst.getCondition());
|
|
947
947
|
|
|
948
948
|
BranchStmt::SuccAndCondPairVec successors;
|
|
949
|
-
|
|
949
|
+
|
|
950
|
+
// get case successor basic block and related case value
|
|
951
|
+
SuccBBAndCondValPairVec succBB2CondValPairVec;
|
|
952
|
+
LLVMUtil::getSuccBBandCondValPairVec(inst, succBB2CondValPairVec);
|
|
953
|
+
for (auto &succBB2CaseValue : succBB2CondValPairVec)
|
|
950
954
|
{
|
|
951
|
-
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
s64_t val = -1;
|
|
955
|
-
if (condVal && condVal->getBitWidth() <= 64)
|
|
956
|
-
val = condVal->getSExtValue();
|
|
955
|
+
s64_t val = LLVMUtil::getCaseValue(inst, succBB2CaseValue);
|
|
956
|
+
const BasicBlock *succBB = succBB2CaseValue.first;
|
|
957
|
+
const Instruction* succInst = &succBB->front();
|
|
957
958
|
const SVFInstruction* svfSuccInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(succInst);
|
|
958
959
|
const ICFGNode* icfgNode = pag->getICFG()->getICFGNode(svfSuccInst);
|
|
959
|
-
successors.push_back(std::make_pair(icfgNode,val));
|
|
960
|
+
successors.push_back(std::make_pair(icfgNode, val));
|
|
960
961
|
}
|
|
961
|
-
addBranchStmt(brinst, cond,successors);
|
|
962
|
+
addBranchStmt(brinst, cond, successors);
|
|
962
963
|
}
|
|
963
964
|
|
|
964
965
|
/// %ap = alloca %struct.va_list
|
|
@@ -128,7 +128,7 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
|
|
|
128
128
|
const SVFInstruction* svfInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);
|
|
129
129
|
const SVFCallInst* svfCall = SVFUtil::cast<SVFCallInst>(svfInst);
|
|
130
130
|
|
|
131
|
-
if (isHeapAllocExtCallViaRet(svfCall)
|
|
131
|
+
if (isHeapAllocExtCallViaRet(svfCall))
|
|
132
132
|
{
|
|
133
133
|
NodeID val = pag->getValueNode(svfInst);
|
|
134
134
|
NodeID obj = pag->getObjectNode(svfInst);
|
|
@@ -750,15 +750,6 @@ void SymbolTableBuilder::initTypeInfo(ObjTypeInfo* typeinfo, const Value* val,
|
|
|
750
750
|
// Heap object, label its field as infinite here
|
|
751
751
|
objSize = typeinfo->getMaxFieldOffsetLimit();
|
|
752
752
|
}
|
|
753
|
-
else if (SVFUtil::isa<Instruction>(val) &&
|
|
754
|
-
isStaticExtCall(
|
|
755
|
-
LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(
|
|
756
|
-
SVFUtil::cast<Instruction>(val))))
|
|
757
|
-
{
|
|
758
|
-
analyzeStaticObjType(typeinfo,val);
|
|
759
|
-
// static object allocated before main, label its field as infinite here
|
|
760
|
-
objSize = typeinfo->getMaxFieldOffsetLimit();
|
|
761
|
-
}
|
|
762
753
|
else if(ArgInProgEntryFunction(val))
|
|
763
754
|
{
|
|
764
755
|
analyzeStaticObjType(typeinfo,val);
|