svf-tools 1.0.628 → 1.0.630
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 +2 -2
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
- package/SVF-doxygen/html/html/Annotator_8h.html +2 -1
- package/SVF-doxygen/html/html/Annotator_8h_source.html +19 -18
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp.html +1 -0
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/CFLVF_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +22 -21
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CppUtil_8cpp.html +247 -0
- package/SVF-doxygen/html/html/CppUtil_8cpp_source.html +98 -0
- package/SVF-doxygen/html/html/CppUtil_8h.html +122 -0
- package/SVF-doxygen/html/html/CppUtil_8h_source.html +94 -0
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DCHG_8cpp.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +40 -40
- package/SVF-doxygen/html/html/DCHG_8h.html +2 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +75 -74
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +9 -8
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +6 -6
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +5 -5
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h.html +1 -0
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -2
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +41 -41
- package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMUtil_8cpp.html +78 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +71 -38
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +41 -7
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +75 -50
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h.html +3 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +29 -27
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTAStat_8h.html +1 -0
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +9 -8
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/MTA_8h.html +1 -0
- package/SVF-doxygen/html/html/MTA_8h_source.html +12 -11
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +4 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp.html +1 -0
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +17 -17
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h.html +1 -0
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +43 -43
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -0
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +24 -23
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +22 -22
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +2 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +34 -33
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +25 -25
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
- package/SVF-doxygen/html/html/RelExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/RelExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/RelationSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +35 -35
- package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -0
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +54 -53
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SVFLoop_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFType_8h.html +65 -35
- package/SVF-doxygen/html/html/SVFType_8h_source.html +114 -114
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFUtil_8h.html +2 -3
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +36 -36
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp.html +2 -0
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +37 -36
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +36 -36
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -0
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WTO_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.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 +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +49 -49
- 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 +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +63 -63
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.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_1CondPTAImpl.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmtDPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +124 -124
- package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
- 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 +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
- 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 +5 -5
- 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_1LLVMLoopAnalysis.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +70 -70
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +141 -141
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +352 -352
- package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +4 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +40 -42
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +95 -95
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.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_1ThreadAPI.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +18 -18
- 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_1VFG.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Wto.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WtoCycle.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/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_967d846b666a902c6ca9bc5c37976e49.html +0 -2
- package/SVF-doxygen/html/html/dir_a07347b69f031d2f872c9d4a9c274c8c.html +0 -2
- package/SVF-doxygen/html/html/files.html +41 -41
- package/SVF-doxygen/html/html/functions_func_i.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_n.html +4 -4
- package/SVF-doxygen/html/html/functions_o.html +15 -13
- package/SVF-doxygen/html/html/functions_s.html +7 -7
- package/SVF-doxygen/html/html/functions_t.html +9 -9
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/globals_c.html +1 -1
- package/SVF-doxygen/html/html/globals_d.html +3 -0
- package/SVF-doxygen/html/html/globals_defs.html +3 -0
- package/SVF-doxygen/html/html/globals_func.html +3 -3
- package/SVF-doxygen/html/html/globals_g.html +1 -1
- package/SVF-doxygen/html/html/globals_h.html +1 -1
- package/SVF-doxygen/html/html/globals_i.html +1 -1
- package/SVF-doxygen/html/html/globals_n.html +1 -1
- package/SVF-doxygen/html/html/globals_s.html +1 -1
- package/SVF-doxygen/html/html/globals_v.html +4 -4
- package/SVF-doxygen/html/html/globals_vars.html +7 -7
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
- 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/mta_8cpp.html +4 -4
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +53 -53
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +620 -150
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +95 -125
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +27 -440
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil_1_1ctir.html +4 -4
- package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_d.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_g.html +10 -10
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +9 -8
- package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_g.html +10 -10
- package/SVF-doxygen/html/html/namespacemembers_i.html +9 -8
- package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_n.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +1 -1
- package/SVF-doxygen/html/html/search/all_12.js +6 -6
- package/SVF-doxygen/html/html/search/all_13.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +7 -7
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +3 -3
- package/SVF-doxygen/html/html/search/all_4.js +2 -1
- package/SVF-doxygen/html/html/search/all_7.js +12 -12
- package/SVF-doxygen/html/html/search/all_8.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +10 -10
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/defines_3.js +1 -0
- package/SVF-doxygen/html/html/search/files_2.js +2 -2
- package/SVF-doxygen/html/html/search/functions_14.js +1 -1
- package/SVF-doxygen/html/html/search/functions_3.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +12 -12
- package/SVF-doxygen/html/html/search/functions_7.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +10 -10
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_15.js +4 -4
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +26 -16
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +25 -15
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +29 -19
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1cppUtil_1_1DemangledName.html +6 -6
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/MTA/MTA.h +1 -0
- package/include/MTA/MTAStat.h +1 -0
- package/include/MemoryModel/PersistentPointsToCache.h +1 -0
- package/include/SVF-LLVM/DCHG.h +2 -1
- package/include/SVF-LLVM/LLVMLoopAnalysis.h +1 -0
- package/include/SVF-LLVM/LLVMModule.h +2 -2
- package/include/SVF-LLVM/LLVMUtil.h +135 -79
- package/include/SVF-LLVM/SVFIRBuilder.h +1 -0
- package/include/SVFIR/PAGBuilderFromFile.h +3 -3
- package/include/SVFIR/SVFIR.h +3 -3
- package/include/SVFIR/SVFModule.h +3 -3
- package/include/SVFIR/SVFStatements.h +3 -3
- package/include/SVFIR/SVFType.h +120 -103
- package/include/SVFIR/SVFValue.h +3 -3
- package/include/SVFIR/SVFVariables.h +3 -3
- package/include/SVFIR/SymbolTableInfo.h +3 -3
- package/include/Util/Annotator.h +8 -17
- package/include/{SVF-LLVM/CPPUtil.h → Util/CppUtil.h} +5 -54
- package/include/Util/SVFUtil.h +3 -9
- package/index.html +9 -5
- package/lib/CFL/CFLAlias.cpp +1 -1
- package/lib/CFL/CFLVF.cpp +1 -0
- package/lib/Graphs/CHG.cpp +1 -0
- package/lib/Graphs/ConsG.cpp +0 -5
- package/lib/Graphs/IRGraph.cpp +0 -5
- package/lib/Graphs/SVFG.cpp +0 -5
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -0
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -0
- package/lib/SABER/SaberCondAllocator.cpp +2 -0
- package/lib/SVF-LLVM/CHGBuilder.cpp +10 -10
- package/lib/SVF-LLVM/DCHG.cpp +1 -1
- package/lib/SVF-LLVM/LLVMModule.cpp +4 -4
- package/lib/SVF-LLVM/LLVMUtil.cpp +362 -4
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +2 -2
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +1 -1
- package/lib/Util/CppUtil.cpp +214 -0
- package/lib/Util/ExtAPI.cpp +1 -1
- package/lib/Util/NodeIDAllocator.cpp +3 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -0
- package/package.json +1 -1
- package/tools/MTA/MTAAnnotator.h +2 -0
- package/lib/SVF-LLVM/CPPUtil.cpp +0 -572
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
#define CPPUtil_H_
|
|
32
32
|
|
|
33
33
|
#include "SVFIR/SVFValue.h"
|
|
34
|
-
#include "SVF-LLVM/BasicTypes.h"
|
|
35
34
|
|
|
36
35
|
namespace SVF
|
|
37
36
|
{
|
|
@@ -51,58 +50,10 @@ struct DemangledName
|
|
|
51
50
|
bool isThunkFunc;
|
|
52
51
|
};
|
|
53
52
|
|
|
54
|
-
struct DemangledName demangle(const std::string
|
|
53
|
+
struct DemangledName demangle(const std::string& name);
|
|
55
54
|
|
|
56
|
-
std::string getBeforeBrackets(const std::string
|
|
57
|
-
bool isValVtbl(const Value* val);
|
|
58
|
-
bool isLoadVtblInst(const LoadInst *loadInst);
|
|
59
|
-
bool isVirtualCallSite(const CallBase* cs);
|
|
60
|
-
bool isConstructor(const Function* F);
|
|
61
|
-
bool isDestructor(const Function* F);
|
|
62
|
-
bool isCPPThunkFunction(const Function* F);
|
|
63
|
-
const Function* getThunkTarget(const Function* F);
|
|
64
|
-
|
|
65
|
-
/*
|
|
66
|
-
* VtableA = {&A::foo}
|
|
67
|
-
* A::A(this){
|
|
68
|
-
* *this = &VtableA;
|
|
69
|
-
* }
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
* A* p = new A;
|
|
73
|
-
* cs: p->foo(...)
|
|
74
|
-
* ==>
|
|
75
|
-
* vtptr = *p;
|
|
76
|
-
* vfn = &vtptr[i]
|
|
77
|
-
* %funp = *vfn
|
|
78
|
-
* call %funp(p,...)
|
|
79
|
-
* getConstructorThisPtr(A) return "this" pointer
|
|
80
|
-
* getVCallThisPtr(cs) return p (this pointer)
|
|
81
|
-
* getVCallVtblPtr(cs) return vtptr
|
|
82
|
-
* getVCallIdx(cs) return i
|
|
83
|
-
* getClassNameFromVtblObj(VtableA) return
|
|
84
|
-
* getClassNameFromType(type of p) return type A
|
|
85
|
-
*/
|
|
86
|
-
const Argument* getConstructorThisPtr(const Function* fun);
|
|
87
|
-
const Value* getVCallThisPtr(const CallBase* cs);
|
|
88
|
-
const Value* getVCallVtblPtr(const CallBase* cs);
|
|
89
|
-
s32_t getVCallIdx(const CallBase* cs);
|
|
55
|
+
std::string getBeforeBrackets(const std::string& name);
|
|
90
56
|
std::string getClassNameFromVtblObj(const std::string& vtblName);
|
|
91
|
-
std::string getClassNameFromType(const Type* ty);
|
|
92
|
-
std::string getClassNameOfThisPtr(const CallBase* cs);
|
|
93
|
-
std::string getFunNameOfVCallSite(const CallBase* cs);
|
|
94
|
-
bool VCallInCtorOrDtor(const CallBase* cs);
|
|
95
|
-
|
|
96
|
-
/*
|
|
97
|
-
* A(A* this){
|
|
98
|
-
* store this this.addr;
|
|
99
|
-
* tmp = load this.addr;
|
|
100
|
-
* this1 = bitcast(tmp);
|
|
101
|
-
* B(this1);
|
|
102
|
-
* }
|
|
103
|
-
* this and this1 are the same thisPtr in the constructor
|
|
104
|
-
*/
|
|
105
|
-
bool isSameThisPtrInConstructor(const Argument* thisPtr1, const Value* thisPtr2);
|
|
106
57
|
|
|
107
58
|
/// Constants pertaining to CTir, for C and C++.
|
|
108
59
|
/// TODO: move helper functions here too?
|
|
@@ -111,17 +62,17 @@ namespace ctir
|
|
|
111
62
|
/// On loads, stores, GEPs representing dereferences, and calls
|
|
112
63
|
/// representing virtual calls.
|
|
113
64
|
/// (The static type.)
|
|
114
|
-
const std::string derefMDName
|
|
65
|
+
const std::string derefMDName = "ctir";
|
|
115
66
|
/// On the (global) virtual table itself.
|
|
116
67
|
/// (The class it corresponds to.)
|
|
117
|
-
const std::string vtMDName
|
|
68
|
+
const std::string vtMDName = "ctir.vt";
|
|
118
69
|
/// On the bitcast of `this` to i8*.
|
|
119
70
|
/// (The class the constructor it corresponds to.)
|
|
120
71
|
const std::string vtInitMDName = "ctir.vt.init";
|
|
121
72
|
|
|
122
73
|
/// Value we expect a ctir-annotated module to have.
|
|
123
74
|
const uint32_t moduleFlagValue = 1;
|
|
124
|
-
}
|
|
75
|
+
} // namespace ctir
|
|
125
76
|
|
|
126
77
|
} // End namespace cppUtil
|
|
127
78
|
|
package/include/Util/SVFUtil.h
CHANGED
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
#define AnalysisUtil_H_
|
|
32
32
|
|
|
33
33
|
#include "FastCluster/fastcluster.h"
|
|
34
|
-
#include "SVF-LLVM/LLVMModule.h"
|
|
35
34
|
#include "SVFIR/SVFValue.h"
|
|
35
|
+
#include "SVFIR/SVFModule.h"
|
|
36
|
+
#include "Util/ExtAPI.h"
|
|
36
37
|
#include "MemoryModel/PointsTo.h"
|
|
37
38
|
#include <time.h>
|
|
38
39
|
|
|
@@ -345,12 +346,11 @@ inline bool isStaticExtFun(const SVFFunction* fun)
|
|
|
345
346
|
/// Program entry function e.g. main
|
|
346
347
|
//@{
|
|
347
348
|
/// Return true if this is a program entry function (e.g. main)
|
|
348
|
-
inline bool isProgEntryFunction
|
|
349
|
+
inline bool isProgEntryFunction(const SVFFunction* fun)
|
|
349
350
|
{
|
|
350
351
|
return fun && fun->getName() == "main";
|
|
351
352
|
}
|
|
352
353
|
|
|
353
|
-
|
|
354
354
|
/// Get program entry function from module.
|
|
355
355
|
inline const SVFFunction* getProgFunction(SVFModule* svfModule, const std::string& funName)
|
|
356
356
|
{
|
|
@@ -636,12 +636,6 @@ inline const SVFValue* getTaskDataAtHareParForSite(const SVFInstruction *inst)
|
|
|
636
636
|
}
|
|
637
637
|
//@}
|
|
638
638
|
|
|
639
|
-
inline bool isProgEntryFunction (const Function* fun)
|
|
640
|
-
{
|
|
641
|
-
return fun && fun->getName() == "main";
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
|
|
645
639
|
inline bool isProgExitCall(const CallSite cs)
|
|
646
640
|
{
|
|
647
641
|
return isProgExitFunction(getCallee(cs));
|
package/index.html
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<html lang="en-us">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
|
-
<title>SVF:
|
|
5
|
+
<title>SVF: Static Value-Flow Analysis Framework for Source Code </title>
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
7
7
|
<link rel="stylesheet" type="text/css" href="docs/stylesheets/normalize.css" media="screen">
|
|
8
8
|
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<h2>
|
|
24
24
|
<a id="what-is-svf" class="anchor" href="#what-is-svf" aria-hidden="true"><span class="octicon octicon-link"></span></a>What is SVF?</h2>
|
|
25
25
|
|
|
26
|
-
<p><a href="https://github.com/svf-tools/SVF">SVF</a> is a static tool that enables scalable and precise
|
|
26
|
+
<p><a href="https://github.com/svf-tools/SVF">SVF</a> is a static tool that enables scalable and precise value-flow analysis for source code. SVF allows value-flow construction and pointer analysis to be performed iteratively, thereby providing increasingly improved precision for both. </p>
|
|
27
27
|
|
|
28
28
|
For a pointer analysis framework that works for Java, we refer to <a href="https://qilinpta.github.io/"> Qilin</a>.
|
|
29
29
|
|
|
@@ -31,11 +31,13 @@ For a pointer analysis framework that works for Java, we refer to <a href="https
|
|
|
31
31
|
<a id="what-kind-of-analyses-does-svf-provide" class="anchor" href="#what-kind-of-analyses-does-svf-provide" aria-hidden="true"><span class="octicon octicon-link"></span></a>What kind of analyses does SVF provide?</h2>
|
|
32
32
|
|
|
33
33
|
<ul>
|
|
34
|
-
<li>
|
|
35
|
-
<li>
|
|
36
|
-
<li>
|
|
34
|
+
<li>SVF IR: language-independent intermediate representation</li>
|
|
35
|
+
<li>Code graphs, including call graph and interprocedural control-flow graph, constraint graph and value-flow graph</li>
|
|
36
|
+
<li>A set of pointer analyses including field-sensitive, flow-sensitive, context-sensitive analyses</li>
|
|
37
37
|
<li>Value-flow dependence analysis</li>
|
|
38
38
|
<li>Interprocedural memory SSA</li>
|
|
39
|
+
<li>Context-free-language reachability analysis</li>
|
|
40
|
+
<li>Abstract execution</li>
|
|
39
41
|
<li>Detecting source-sink related bugs, such as memory leaks and incorrect file-open close errors.</li>
|
|
40
42
|
<li>An <a href= "https://github.com/svf-tools/SVF-EclipsePlugin">Eclipse plugin </a> for visualizing bugs </li>
|
|
41
43
|
</ul>
|
|
@@ -63,6 +65,8 @@ GPLv3
|
|
|
63
65
|
|
|
64
66
|
<p> Please make a <b>pull request</b> or <b>email us</b> if you have a paper for this list.</p>
|
|
65
67
|
|
|
68
|
+
<p> Yuxiang Lei, Yulei Sui, Shuo Ding, and Qirun Zhang. <a href ="https://yuleisui.github.io/publications/oopsla22.pdf"> Taming Transitive Redundancy for Context-Free Language Reachability</a>. ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'22) </p>
|
|
69
|
+
|
|
66
70
|
<p>Yaohui Chen, Peng Li, Jun Xu, Shengjian Guo,Rundong Zhou, Yulong Zhang, Tao Wei, and Long Lu. <a href ="https://arxiv.org/pdf/1906.07327.pdf">SAVIOR: Towards Bug-Driven Hybrid Testing</a>, 41st IEEE Symposium on Security and Privacy (S&P'20)</p>
|
|
67
71
|
|
|
68
72
|
<p>Dae R. Jeong, Kyungtae Kim, Basavesh Shivakumar, Byoungyoung Lee, and Insik Shin. <a href ="https://lifeasageek.github.io/papers/jeong:razzer.pdf">RAZZER: Finding Kernel Race Bugs through Fuzzing</a>, 40th IEEE Symposium on Security and Privacy (S&P'19) </p>
|
package/lib/CFL/CFLAlias.cpp
CHANGED
package/lib/CFL/CFLVF.cpp
CHANGED
package/lib/Graphs/CHG.cpp
CHANGED
package/lib/Graphs/ConsG.cpp
CHANGED
|
@@ -716,13 +716,8 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
|
|
|
716
716
|
return "ConstraintG";
|
|
717
717
|
}
|
|
718
718
|
|
|
719
|
-
#if LLVM_VERSION_MAJOR >= 12
|
|
720
719
|
static bool isNodeHidden(NodeType *n, ConstraintGraph *)
|
|
721
720
|
{
|
|
722
|
-
#else
|
|
723
|
-
static bool isNodeHidden(NodeType *n)
|
|
724
|
-
{
|
|
725
|
-
#endif
|
|
726
721
|
if (Options::ShowHiddenNode()) return false;
|
|
727
722
|
else return (n->getInEdges().empty() && n->getOutEdges().empty());
|
|
728
723
|
}
|
package/lib/Graphs/IRGraph.cpp
CHANGED
|
@@ -137,13 +137,8 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
|
|
|
137
137
|
|
|
138
138
|
/// isNodeHidden - If the function returns true, the given node is not
|
|
139
139
|
/// displayed in the graph
|
|
140
|
-
#if LLVM_VERSION_MAJOR >= 12
|
|
141
140
|
static bool isNodeHidden(SVFVar *node, IRGraph *)
|
|
142
141
|
{
|
|
143
|
-
#else
|
|
144
|
-
static bool isNodeHidden(SVFVar *node)
|
|
145
|
-
{
|
|
146
|
-
#endif
|
|
147
142
|
if (Options::ShowHiddenNode()) return false;
|
|
148
143
|
else return node->isIsolatedNode();
|
|
149
144
|
}
|
package/lib/Graphs/SVFG.cpp
CHANGED
|
@@ -781,13 +781,8 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
|
|
|
781
781
|
|
|
782
782
|
/// isNodeHidden - If the function returns true, the given node is not
|
|
783
783
|
/// displayed in the graph
|
|
784
|
-
#if LLVM_VERSION_MAJOR >= 12
|
|
785
784
|
static bool isNodeHidden(SVFGNode *node, SVFG *)
|
|
786
785
|
{
|
|
787
|
-
#else
|
|
788
|
-
static bool isNodeHidden(SVFGNode *node)
|
|
789
|
-
{
|
|
790
|
-
#endif
|
|
791
786
|
if (Options::ShowHiddenNode()) return false;
|
|
792
787
|
else return node->getInEdges().empty() && node->getOutEdges().empty();
|
|
793
788
|
}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
#include "SVF-LLVM/CHGBuilder.h"
|
|
40
40
|
#include "Util/Options.h"
|
|
41
|
-
#include "
|
|
41
|
+
#include "Util/CppUtil.h"
|
|
42
42
|
#include "SVFIR/SymbolTableInfo.h"
|
|
43
43
|
#include "Util/SVFUtil.h"
|
|
44
44
|
#include "SVF-LLVM/LLVMUtil.h"
|
|
@@ -88,7 +88,7 @@ void CHGBuilder::buildCHG()
|
|
|
88
88
|
|
|
89
89
|
void CHGBuilder::buildCHGNodes(const GlobalValue *globalvalue)
|
|
90
90
|
{
|
|
91
|
-
if (isValVtbl(globalvalue) && globalvalue->getNumOperands() > 0)
|
|
91
|
+
if (LLVMUtil::isValVtbl(globalvalue) && globalvalue->getNumOperands() > 0)
|
|
92
92
|
{
|
|
93
93
|
const ConstantStruct *vtblStruct = SVFUtil::dyn_cast<ConstantStruct>(globalvalue->getOperand(0));
|
|
94
94
|
assert(vtblStruct && "Initializer of a vtable not a struct?");
|
|
@@ -169,7 +169,7 @@ void CHGBuilder::connectInheritEdgeViaCall(const Function* caller, const CallBas
|
|
|
169
169
|
{
|
|
170
170
|
if (cs->arg_size() < 1 || (cs->arg_size() < 2 && cs->paramHasAttr(0, llvm::Attribute::StructRet)))
|
|
171
171
|
return;
|
|
172
|
-
const Value* csThisPtr = getVCallThisPtr(cs);
|
|
172
|
+
const Value* csThisPtr = LLVMUtil::getVCallThisPtr(cs);
|
|
173
173
|
//const Argument* consThisPtr = getConstructorThisPtr(caller);
|
|
174
174
|
//bool samePtr = isSameThisPtrInConstructor(consThisPtr, csThisPtr);
|
|
175
175
|
bool samePtrTrue = true;
|
|
@@ -198,7 +198,7 @@ void CHGBuilder::connectInheritEdgeViaStore(const Function* caller, const StoreI
|
|
|
198
198
|
if (bcce->getOpcode() == Instruction::GetElementPtr)
|
|
199
199
|
{
|
|
200
200
|
const Value* gepval = bcce->getOperand(0);
|
|
201
|
-
if (isValVtbl(gepval))
|
|
201
|
+
if (LLVMUtil::isValVtbl(gepval))
|
|
202
202
|
{
|
|
203
203
|
string vtblClassName = getClassNameFromVtblObj(gepval->getName().str());
|
|
204
204
|
if (vtblClassName.size() > 0 && dname.className.compare(vtblClassName) != 0)
|
|
@@ -365,7 +365,7 @@ void CHGBuilder::analyzeVTables(const Module &M)
|
|
|
365
365
|
E = M.global_end(); I != E; ++I)
|
|
366
366
|
{
|
|
367
367
|
const GlobalValue *globalvalue = SVFUtil::dyn_cast<const GlobalValue>(&(*I));
|
|
368
|
-
if (isValVtbl(globalvalue) && globalvalue->getNumOperands() > 0)
|
|
368
|
+
if (LLVMUtil::isValVtbl(globalvalue) && globalvalue->getNumOperands() > 0)
|
|
369
369
|
{
|
|
370
370
|
const ConstantStruct *vtblStruct =
|
|
371
371
|
SVFUtil::dyn_cast<ConstantStruct>(globalvalue->getOperand(0));
|
|
@@ -640,7 +640,7 @@ void CHGBuilder::buildCSToCHAVtblsAndVfnsMap()
|
|
|
640
640
|
{
|
|
641
641
|
if(const CallBase* callInst = SVFUtil::dyn_cast<CallBase>(&*II))
|
|
642
642
|
{
|
|
643
|
-
if (
|
|
643
|
+
if (LLVMUtil::isVirtualCallSite(callInst) == false)
|
|
644
644
|
continue;
|
|
645
645
|
|
|
646
646
|
VTableSet vtbls;
|
|
@@ -671,7 +671,7 @@ void CHGBuilder::buildCSToCHAVtblsAndVfnsMap()
|
|
|
671
671
|
|
|
672
672
|
const CHGraph::CHNodeSetTy& CHGBuilder::getCSClasses(const CallBase* cs)
|
|
673
673
|
{
|
|
674
|
-
assert(isVirtualCallSite(cs) && "not virtual callsite!");
|
|
674
|
+
assert(LLVMUtil::isVirtualCallSite(cs) && "not virtual callsite!");
|
|
675
675
|
const SVFInstruction* svfcall = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);
|
|
676
676
|
|
|
677
677
|
CHGraph::CallSiteToCHNodesMap::const_iterator it = chg->csToClassesMap.find(svfcall);
|
|
@@ -681,7 +681,7 @@ const CHGraph::CHNodeSetTy& CHGBuilder::getCSClasses(const CallBase* cs)
|
|
|
681
681
|
}
|
|
682
682
|
else
|
|
683
683
|
{
|
|
684
|
-
string thisPtrClassName = getClassNameOfThisPtr(cs);
|
|
684
|
+
string thisPtrClassName = LLVMUtil::getClassNameOfThisPtr(cs);
|
|
685
685
|
if (const CHNode* thisNode = chg->getNode(thisPtrClassName))
|
|
686
686
|
{
|
|
687
687
|
const CHGraph::CHNodeSetTy& instAndDesces = getInstancesAndDescendants(thisPtrClassName);
|
|
@@ -695,9 +695,9 @@ const CHGraph::CHNodeSetTy& CHGBuilder::getCSClasses(const CallBase* cs)
|
|
|
695
695
|
|
|
696
696
|
void CHGBuilder::addFuncToFuncVector(CHNode::FuncVector &v, const Function *lf)
|
|
697
697
|
{
|
|
698
|
-
if (isCPPThunkFunction(lf))
|
|
698
|
+
if (LLVMUtil::isCPPThunkFunction(lf))
|
|
699
699
|
{
|
|
700
|
-
if (const auto *tf = getThunkTarget(lf))
|
|
700
|
+
if (const auto *tf = LLVMUtil::getThunkTarget(lf))
|
|
701
701
|
v.push_back(LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(tf));
|
|
702
702
|
}
|
|
703
703
|
else
|
package/lib/SVF-LLVM/DCHG.cpp
CHANGED
|
@@ -184,7 +184,7 @@ void LLVMModuleSet::createSVFDataStructure()
|
|
|
184
184
|
SVFInstruction* svfInst = nullptr;
|
|
185
185
|
if(const CallBase* call = SVFUtil::dyn_cast<CallBase>(inst))
|
|
186
186
|
{
|
|
187
|
-
if(
|
|
187
|
+
if(LLVMUtil::isVirtualCallSite(call))
|
|
188
188
|
svfInst = new SVFVirtualCallInst(call->getName().str(), getSVFType(call->getType()), svfBB,call->getFunctionType()->isVarArg(),inst->isTerminator());
|
|
189
189
|
else
|
|
190
190
|
svfInst = new SVFCallInst(call->getName().str(), getSVFType(call->getType()), svfBB,call->getFunctionType()->isVarArg(),inst->isTerminator());
|
|
@@ -267,9 +267,9 @@ void LLVMModuleSet::initSVFBasicBlock(const Function* func)
|
|
|
267
267
|
svfcall->setCalledOperand(callee);
|
|
268
268
|
if(SVFVirtualCallInst* virtualCall = SVFUtil::dyn_cast<SVFVirtualCallInst>(svfcall))
|
|
269
269
|
{
|
|
270
|
-
virtualCall->setVtablePtr(getSVFValue(
|
|
271
|
-
virtualCall->setFunIdxInVtable(
|
|
272
|
-
virtualCall->setFunNameOfVirtualCall(
|
|
270
|
+
virtualCall->setVtablePtr(getSVFValue(LLVMUtil::getVCallVtblPtr(call)));
|
|
271
|
+
virtualCall->setFunIdxInVtable(LLVMUtil::getVCallIdx(call));
|
|
272
|
+
virtualCall->setFunNameOfVirtualCall(LLVMUtil::getFunNameOfVCallSite(call));
|
|
273
273
|
}
|
|
274
274
|
for(u32_t i = 0; i < call->arg_size(); i++)
|
|
275
275
|
{
|