svf-tools 1.0.619 → 1.0.621
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/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +9 -4
- package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
- package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
- package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
- package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
- package/SVF-doxygen/html/html/Options_8cpp_source.html +124 -119
- package/SVF-doxygen/html/html/Options_8h.html +1 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +125 -120
- package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/annotated.html +363 -353
- package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
- package/SVF-doxygen/html/html/classOption-members.html +99 -0
- package/SVF-doxygen/html/html/classOption.html +567 -0
- package/SVF-doxygen/html/html/classOption.png +0 -0
- package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
- package/SVF-doxygen/html/html/classOptionBase.html +823 -0
- package/SVF-doxygen/html/html/classOptionBase.png +0 -0
- package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMap.html +428 -0
- package/SVF-doxygen/html/html/classOptionMap.png +0 -0
- package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
- package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +33 -30
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
- package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
- package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +121 -120
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +641 -615
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +20 -19
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
- package/SVF-doxygen/html/html/classes.html +110 -108
- package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
- package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
- package/SVF-doxygen/html/html/files.html +27 -24
- package/SVF-doxygen/html/html/functions.html +7 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_a.html +45 -21
- package/SVF-doxygen/html/html/functions_b.html +15 -7
- package/SVF-doxygen/html/html/functions_c.html +72 -49
- package/SVF-doxygen/html/html/functions_d.html +25 -16
- package/SVF-doxygen/html/html/functions_e.html +11 -4
- package/SVF-doxygen/html/html/functions_f.html +19 -16
- package/SVF-doxygen/html/html/functions_func.html +35 -11
- package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_func_b.html +11 -3
- package/SVF-doxygen/html/html/functions_func_c.html +55 -34
- package/SVF-doxygen/html/html/functions_func_e.html +5 -1
- package/SVF-doxygen/html/html/functions_func_f.html +4 -1
- package/SVF-doxygen/html/html/functions_func_g.html +26 -7
- package/SVF-doxygen/html/html/functions_func_h.html +10 -3
- package/SVF-doxygen/html/html/functions_func_i.html +25 -10
- package/SVF-doxygen/html/html/functions_func_m.html +3 -2
- package/SVF-doxygen/html/html/functions_func_n.html +4 -1
- package/SVF-doxygen/html/html/functions_func_o.html +23 -6
- package/SVF-doxygen/html/html/functions_func_p.html +15 -3
- package/SVF-doxygen/html/html/functions_func_s.html +20 -19
- package/SVF-doxygen/html/html/functions_func_t.html +3 -0
- package/SVF-doxygen/html/html/functions_func_u.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +28 -9
- package/SVF-doxygen/html/html/functions_h.html +13 -6
- package/SVF-doxygen/html/html/functions_i.html +44 -20
- package/SVF-doxygen/html/html/functions_k.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +4 -4
- package/SVF-doxygen/html/html/functions_m.html +14 -13
- package/SVF-doxygen/html/html/functions_n.html +9 -5
- package/SVF-doxygen/html/html/functions_o.html +48 -25
- package/SVF-doxygen/html/html/functions_p.html +65 -34
- package/SVF-doxygen/html/html/functions_r.html +7 -9
- package/SVF-doxygen/html/html/functions_s.html +34 -32
- package/SVF-doxygen/html/html/functions_t.html +17 -8
- package/SVF-doxygen/html/html/functions_type_c.html +2 -1
- package/SVF-doxygen/html/html/functions_type_d.html +3 -0
- package/SVF-doxygen/html/html/functions_type_i.html +2 -1
- package/SVF-doxygen/html/html/functions_type_o.html +7 -0
- package/SVF-doxygen/html/html/functions_type_p.html +6 -0
- package/SVF-doxygen/html/html/functions_type_t.html +3 -0
- package/SVF-doxygen/html/html/functions_u.html +6 -3
- package/SVF-doxygen/html/html/functions_v.html +7 -5
- package/SVF-doxygen/html/html/functions_vars.html +7 -1
- package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +15 -12
- package/SVF-doxygen/html/html/functions_vars_d.html +21 -15
- package/SVF-doxygen/html/html/functions_vars_e.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +14 -6
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
- package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_p.html +34 -21
- package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_s.html +13 -10
- package/SVF-doxygen/html/html/functions_vars_t.html +7 -4
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
- package/SVF-doxygen/html/html/functions_w.html +11 -7
- package/SVF-doxygen/html/html/globals_d.html +4 -4
- package/SVF-doxygen/html/html/globals_e.html +6 -6
- package/SVF-doxygen/html/html/globals_f.html +2 -2
- package/SVF-doxygen/html/html/globals_func.html +6 -58
- package/SVF-doxygen/html/html/globals_i.html +4 -12
- package/SVF-doxygen/html/html/globals_l.html +2 -2
- package/SVF-doxygen/html/html/globals_r.html +4 -4
- package/SVF-doxygen/html/html/globals_s.html +0 -4
- package/SVF-doxygen/html/html/globals_type.html +3 -0
- package/SVF-doxygen/html/html/globals_u.html +3 -0
- package/SVF-doxygen/html/html/globals_vars.html +43 -12
- package/SVF-doxygen/html/html/hierarchy.html +517 -496
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -2
- package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +29 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
- package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
- package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/search/all_0.js +2 -1
- package/SVF-doxygen/html/html/search/all_1.js +15 -8
- package/SVF-doxygen/html/html/search/all_10.js +33 -25
- package/SVF-doxygen/html/html/search/all_11.js +9 -9
- package/SVF-doxygen/html/html/search/all_12.js +22 -22
- package/SVF-doxygen/html/html/search/all_13.js +14 -11
- package/SVF-doxygen/html/html/search/all_14.js +5 -4
- package/SVF-doxygen/html/html/search/all_15.js +5 -5
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_19.js +6 -0
- package/SVF-doxygen/html/html/search/all_2.js +5 -3
- package/SVF-doxygen/html/html/search/all_3.js +25 -18
- package/SVF-doxygen/html/html/search/all_4.js +20 -18
- package/SVF-doxygen/html/html/search/all_5.js +8 -6
- package/SVF-doxygen/html/html/search/all_6.js +9 -8
- package/SVF-doxygen/html/html/search/all_7.js +9 -3
- package/SVF-doxygen/html/html/search/all_8.js +5 -3
- package/SVF-doxygen/html/html/search/all_9.js +16 -11
- package/SVF-doxygen/html/html/search/all_b.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +7 -6
- package/SVF-doxygen/html/html/search/all_d.js +13 -13
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +24 -6
- package/SVF-doxygen/html/html/search/classes_10.js +1 -0
- package/SVF-doxygen/html/html/search/classes_2.js +2 -0
- package/SVF-doxygen/html/html/search/classes_7.js +2 -1
- package/SVF-doxygen/html/html/search/classes_c.js +15 -0
- package/SVF-doxygen/html/html/search/classes_d.js +2 -0
- package/SVF-doxygen/html/html/search/files_2.js +3 -0
- package/SVF-doxygen/html/html/search/functions_0.js +8 -1
- package/SVF-doxygen/html/html/search/functions_1.js +4 -2
- package/SVF-doxygen/html/html/search/functions_10.js +0 -2
- package/SVF-doxygen/html/html/search/functions_11.js +2 -3
- package/SVF-doxygen/html/html/search/functions_12.js +1 -0
- package/SVF-doxygen/html/html/search/functions_13.js +1 -0
- package/SVF-doxygen/html/html/search/functions_17.js +6 -0
- package/SVF-doxygen/html/html/search/functions_2.js +5 -1
- package/SVF-doxygen/html/html/search/functions_3.js +0 -2
- package/SVF-doxygen/html/html/search/functions_4.js +2 -4
- package/SVF-doxygen/html/html/search/functions_5.js +2 -1
- package/SVF-doxygen/html/html/search/functions_6.js +7 -1
- package/SVF-doxygen/html/html/search/functions_7.js +4 -2
- package/SVF-doxygen/html/html/search/functions_8.js +6 -3
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +7 -3
- package/SVF-doxygen/html/html/search/functions_f.js +3 -0
- package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
- package/SVF-doxygen/html/html/search/variables_0.js +2 -1
- package/SVF-doxygen/html/html/search/variables_1.js +7 -7
- package/SVF-doxygen/html/html/search/variables_10.js +25 -21
- package/SVF-doxygen/html/html/search/variables_11.js +7 -5
- package/SVF-doxygen/html/html/search/variables_12.js +11 -10
- package/SVF-doxygen/html/html/search/variables_13.js +9 -8
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +4 -4
- package/SVF-doxygen/html/html/search/variables_16.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +13 -12
- package/SVF-doxygen/html/html/search/variables_4.js +19 -15
- package/SVF-doxygen/html/html/search/variables_5.js +6 -2
- package/SVF-doxygen/html/html/search/variables_6.js +7 -6
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +9 -7
- package/SVF-doxygen/html/html/search/variables_b.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +5 -4
- package/SVF-doxygen/html/html/search/variables_d.js +11 -11
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/search/variables_f.js +3 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
- package/include/CFL/CFLAlias.h +34 -0
- package/include/CFL/CFLData.h +316 -0
- package/include/CFL/CFLDataBuilder.h +91 -0
- package/include/CFL/CFLSolver.h +21 -0
- package/include/Util/CommandLine.h +527 -0
- package/include/Util/Options.h +125 -124
- package/include/WPA/Andersen.h +5 -5
- package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
- package/lib/CFL/CFLAlias.cpp +40 -4
- package/lib/CFL/CFLBase.cpp +4 -4
- package/lib/CFL/CFLGraphBuilder.cpp +2 -2
- package/lib/CFL/CFLVF.cpp +5 -5
- package/lib/DDA/ContextDDA.cpp +1 -1
- package/lib/DDA/DDAPass.cpp +14 -13
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ConsG.cpp +10 -10
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +5 -5
- package/lib/Graphs/SVFGOPT.cpp +5 -5
- package/lib/Graphs/VFG.cpp +1 -1
- package/lib/MSSA/MemRegion.cpp +2 -2
- package/lib/MSSA/MemSSA.cpp +4 -4
- package/lib/MSSA/SVFGBuilder.cpp +4 -4
- package/lib/MTA/FSMPTA.cpp +13 -13
- package/lib/MTA/MHP.cpp +1 -1
- package/lib/MTA/MTA.cpp +2 -2
- package/lib/MTA/MTAStat.cpp +1 -1
- package/lib/MTA/PCG.cpp +8 -2
- package/lib/MTA/TCT.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
- package/lib/MemoryModel/PointsTo.cpp +1 -1
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +5 -5
- package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
- package/lib/SVF-LLVM/DCHG.cpp +1 -1
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
- package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
- package/lib/SVFIR/SVFIR.cpp +4 -4
- package/lib/SVFIR/SVFStatements.cpp +16 -16
- package/lib/SVFIR/SVFVariables.cpp +5 -5
- package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
- package/lib/Util/NodeIDAllocator.cpp +9 -9
- package/lib/Util/Options.cpp +431 -412
- package/lib/Util/SVFStat.cpp +5 -5
- package/lib/Util/SVFUtil.cpp +1 -1
- package/lib/Util/Z3Expr.cpp +2 -2
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSCD.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +8 -8
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +10 -9
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +8 -14
- package/tools/DDA/dda.cpp +39 -29
- package/tools/Example/svf-ex.cpp +5 -8
- package/tools/MTA/LockResultValidator.cpp +2 -2
- package/tools/MTA/MTAAnnotator.cpp +5 -5
- package/tools/MTA/MTAResultValidator.cpp +8 -8
- package/tools/MTA/mta.cpp +5 -8
- package/tools/SABER/saber.cpp +23 -17
- package/tools/WPA/wpa.cpp +6 -9
|
@@ -1888,7 +1888,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1888
1888
|
</div><div class="memdoc">
|
|
1889
1889
|
|
|
1890
1890
|
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00370">370</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1891
|
-
<div class="fragment"><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>() != <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size())</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: The number of CxtThread is different from given result!!!\n"</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given threads:\t"</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size() << <span class="stringliteral">"\nAnalysis result:\t"</span> << tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<int></a> visitedvthd;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> rthd = tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(i)-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, CallStrCxt>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.end(); j != ej; j++)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a>(rthd.<a class="code" href="classSVF_1_1CxtThread.html#a93d75593046e26eafcf1af3a596bba4a">getContext</a>(), <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[vthdid]))</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) != visitedvthd.end())</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nValidate CxtThread: Repeat real CxtThread !!!\n"</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid])-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>().<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid] = i;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] = vthdid;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  visitedvthd.insert(vthdid);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: Cannot match real CxtThread !!!\n"</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (visitedvthd.size() != <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size())</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: Some given CxtThreads cannot be found !!!\n"</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, CallStrCxt>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.end(); j != ej; j++)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) == visitedvthd.end())</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[vthdid]);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> }</div><div class="ttc" id="classSVF_1_1MTAResultValidator_html_a6306899b5360e106dd090bea571027bf"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">SVF::MTAResultValidator::matchCxt</a></div><div class="ttdeci">bool matchCxt(const CallStrCxt cxt1, const CallStrCxt cxt2) const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00178">MTAResultValidator.cpp:178</a></div></div>
|
|
1891
|
+
<div class="fragment"><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>() != <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size())</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: The number of CxtThread is different from given result!!!\n"</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given threads:\t"</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size() << <span class="stringliteral">"\nAnalysis result:\t"</span> << tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<int></a> visitedvthd;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> rthd = tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(i)-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, CallStrCxt>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.end(); j != ej; j++)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a>(rthd.<a class="code" href="classSVF_1_1CxtThread.html#a93d75593046e26eafcf1af3a596bba4a">getContext</a>(), <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[vthdid]))</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) != visitedvthd.end())</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nValidate CxtThread: Repeat real CxtThread !!!\n"</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid])-><a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>().<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid] = i;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] = vthdid;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  visitedvthd.insert(vthdid);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: Cannot match real CxtThread !!!\n"</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (visitedvthd.size() != <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.size())</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate CxtThread: Some given CxtThreads cannot be found !!!\n"</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, CallStrCxt>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>.end(); j != ej; j++)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) == visitedvthd.end())</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[vthdid]);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> }</div><div class="ttc" id="classSVF_1_1MTAResultValidator_html_a6306899b5360e106dd090bea571027bf"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">SVF::MTAResultValidator::matchCxt</a></div><div class="ttdeci">bool matchCxt(const CallStrCxt cxt1, const CallStrCxt cxt2) const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00178">MTAResultValidator.cpp:178</a></div></div>
|
|
1892
1892
|
<div class="ttc" id="classSVF_1_1CxtThread_html_a93d75593046e26eafcf1af3a596bba4a"><div class="ttname"><a href="classSVF_1_1CxtThread.html#a93d75593046e26eafcf1af3a596bba4a">SVF::CxtThread::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return context of the thread. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00205">CxtStmt.h:205</a></div></div>
|
|
1893
1893
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1894
1894
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae7d61becd14123f60976fd7261d0c84d"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">SVF::MTAResultValidator::dumpCxt</a></div><div class="ttdeci">void dumpCxt(const CallStrCxt &cxt) const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00185">MTAResultValidator.cpp:185</a></div></div>
|
|
@@ -1900,11 +1900,11 @@ Static Private Attributes</h2></td></tr>
|
|
|
1900
1900
|
<div class="ttc" id="classSVF_1_1TCTNode_html_a21591b19f6a9267151c31178f9543ee6"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">SVF::TCTNode::getCxtThread</a></div><div class="ttdeci">const CxtThread & getCxtThread() const</div><div class="ttdoc">Get CxtThread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00101">TCT.h:101</a></div></div>
|
|
1901
1901
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
|
|
1902
1902
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a245c967245e5a693eaf7f60782143d7a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">SVF::MTAResultValidator::vthdToCxt</a></div><div class="ttdeci">vthdToCxtMap vthdToCxt</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00138">MTAResultValidator.h:138</a></div></div>
|
|
1903
|
-
<div class="ttc" id="classSVF_1_1Options_html_ac609142ee5a0caaf3ac51238ec421c2e"><div class="ttname"><a href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
1904
1903
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a615623a08324ee155cb527a3b57e8c19"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">SVF::MTAResultValidator::rthdTovthd</a></div><div class="ttdeci">rthdTovthdMap rthdTovthd</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00140">MTAResultValidator.h:140</a></div></div>
|
|
1905
1904
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
1906
1905
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
1907
1906
|
<div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00082">MHP.h:82</a></div></div>
|
|
1907
|
+
<div class="ttc" id="classSVF_1_1Options_html_a944aee270c78d42c998691da283165f1"><div class="ttname"><a href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const Option< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
1908
1908
|
<div class="ttc" id="classSVF_1_1TCT_html"><div class="ttname"><a href="classSVF_1_1TCT.html">SVF::TCT</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00135">TCT.h:135</a></div></div>
|
|
1909
1909
|
<div class="ttc" id="classSVF_1_1CxtThread_html_a66709acfa2f5762d86574c9cf7f38a64"><div class="ttname"><a href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">SVF::CxtThread::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdoc">Dump CxtThread. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00278">CxtStmt.h:278</a></div></div>
|
|
1910
1910
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00075">SVFUtil.cpp:75</a></div></div>
|
|
@@ -1961,7 +1961,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1961
1961
|
</div><div class="memdoc">
|
|
1962
1962
|
|
|
1963
1963
|
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00496">496</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1964
|
-
<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">MTAResultValidator::INTERLEV_FLAG</a> res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a5a6e2f2d1d6aa6fb3a83455b5a288ff1">MTAResultValidator::INTERLEV_TRUE</a>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">for</span> (MHP::InstToThreadStmtSetMap::iterator seti = <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>.begin(), eseti = <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>.end(); seti != eseti; ++seti)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = (*seti).first;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MHP.html#a28031502c4f8f0d4012c0827c57efb32">MHP::CxtThreadStmtSet</a>& tsSet = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a4ce3b9ad740aa7b74a1ae2192aeeb9d8">getThreadStmtSet</a>(inst);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> ((*seti).second.size() != tsSet.size())</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\n Validate Interleaving: Wrong at : "</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: The number of thread running on stmt is wrong\n"</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n----Given threads:\n"</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::iterator thdlevi = (*seti).second.begin(), ethdlevi = (*seti).second.end(); thdlevi != ethdlevi;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  ++thdlevi)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"TID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[(*thdlevi).getTid()] << <span class="stringliteral">": "</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*thdlevi).getContext());</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n----Analysis threads:\n"</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::const_iterator it = tsSet.begin(), eit = tsSet.end(); it != eit; ++it)</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"TID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[(*it).getTid()] << <span class="stringliteral">": "</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*it).getContext());</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::const_iterator it = tsSet.begin(), eit = tsSet.end(); it != eit; ++it)</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts = *it;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::iterator it2 = (*seti).second.begin(), eit2 = (*seti).second.end(); it2 != eit2; ++it2)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts2 = *it2;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">if</span> (ts2.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>() == ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>() && <a class="code" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a>(ts2.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>(), ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>()))</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev2 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>[ts2];</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (lev != lev2)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate Interleaving: Wrong at: "</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: thread interleaving on stmt is wrong\n"</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>());</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given result: \tTID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev2);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysis result: \tTID "</span> << rthdTovthd[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a80414f4ba70357742fa0269f93f1a910">MTAResultValidator::INTERLEV_IMPRECISE</a> > res)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a80414f4ba70357742fa0269f93f1a910">MTAResultValidator::INTERLEV_IMPRECISE</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">if</span> (lev.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() >= lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>())</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">bool</span> findeveryelement = <span class="keyword">true</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; it++)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (!lev.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(*it))</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  findeveryelement = <span class="keyword">false</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (!findeveryelement)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate Interleaving: Wrong at:"</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: analysis thread cxt is not matched by given thread cxt\n"</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>());</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysis result: \tTID "</span> << rthdTovthd[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
|
|
1964
|
+
<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">MTAResultValidator::INTERLEV_FLAG</a> res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a5a6e2f2d1d6aa6fb3a83455b5a288ff1">MTAResultValidator::INTERLEV_TRUE</a>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">for</span> (MHP::InstToThreadStmtSetMap::iterator seti = <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>.begin(), eseti = <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>.end(); seti != eseti; ++seti)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst = (*seti).first;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MHP.html#a28031502c4f8f0d4012c0827c57efb32">MHP::CxtThreadStmtSet</a>& tsSet = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a4ce3b9ad740aa7b74a1ae2192aeeb9d8">getThreadStmtSet</a>(inst);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> ((*seti).second.size() != tsSet.size())</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\n Validate Interleaving: Wrong at : "</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: The number of thread running on stmt is wrong\n"</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n----Given threads:\n"</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::iterator thdlevi = (*seti).second.begin(), ethdlevi = (*seti).second.end(); thdlevi != ethdlevi;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  ++thdlevi)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"TID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[(*thdlevi).getTid()] << <span class="stringliteral">": "</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*thdlevi).getContext());</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n----Analysis threads:\n"</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::const_iterator it = tsSet.begin(), eit = tsSet.end(); it != eit; ++it)</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"TID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[(*it).getTid()] << <span class="stringliteral">": "</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*it).getContext());</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::const_iterator it = tsSet.begin(), eit = tsSet.end(); it != eit; ++it)</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts = *it;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">for</span> (MHP::CxtThreadStmtSet::iterator it2 = (*seti).second.begin(), eit2 = (*seti).second.end(); it2 != eit2; ++it2)</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts2 = *it2;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">if</span> (ts2.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>() == ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>() && <a class="code" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a>(ts2.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>(), ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>()))</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev2 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>[ts2];</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (lev != lev2)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate Interleaving: Wrong at: "</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: thread interleaving on stmt is wrong\n"</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>());</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given result: \tTID "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev2);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysis result: \tTID "</span> << rthdTovthd[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a80414f4ba70357742fa0269f93f1a910">MTAResultValidator::INTERLEV_IMPRECISE</a> > res)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a80414f4ba70357742fa0269f93f1a910">MTAResultValidator::INTERLEV_IMPRECISE</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">if</span> (lev.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() >= lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>())</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">bool</span> findeveryelement = <span class="keyword">true</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = lev2.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; it++)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">if</span> (!lev.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(*it))</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  findeveryelement = <span class="keyword">false</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (!findeveryelement)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate Interleaving: Wrong at:"</span>) << inst-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Reason: analysis thread cxt is not matched by given thread cxt\n"</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(ts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>());</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Analysis result: \tTID "</span> << rthdTovthd[ts.<a class="code" href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">getTid</a>()];</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00528">SparseBitVector.h:528</a></div></div>
|
|
1965
1965
|
<div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
|
|
1966
1966
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a5a6e2f2d1d6aa6fb3a83455b5a288ff1"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a5a6e2f2d1d6aa6fb3a83455b5a288ff1">SVF::MTAResultValidator::INTERLEV_TRUE</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_TRUE</div><div class="ttdoc">Constant INTERLEV_FLAG values. </div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00146">MTAResultValidator.h:146</a></div></div>
|
|
1967
1967
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a0e2fb93a69df487606c0eeaeadab805d"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a0e2fb93a69df487606c0eeaeadab805d">SVF::MTAResultValidator::INTERLEV_UNSOUND</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_UNSOUND</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00148">MTAResultValidator.h:148</a></div></div>
|
|
@@ -1972,7 +1972,6 @@ Static Private Attributes</h2></td></tr>
|
|
|
1972
1972
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01096">SparseBitVector.h:1096</a></div></div>
|
|
1973
1973
|
<div class="ttc" id="classSVF_1_1CxtThreadStmt_html_a3b8f641f2fb7ade7052cae1ee6463884"><div class="ttname"><a href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">SVF::CxtThreadStmt::getTid</a></div><div class="ttdeci">NodeID getTid() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00139">CxtStmt.h:139</a></div></div>
|
|
1974
1974
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ac4a7773211a9c842639ac25b1a504c7e"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">SVF::MTAResultValidator::threadStmtToInterLeaving</a></div><div class="ttdeci">MHP::ThreadStmtToThreadInterleav threadStmtToInterLeaving</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00129">MTAResultValidator.h:129</a></div></div>
|
|
1975
|
-
<div class="ttc" id="classSVF_1_1Options_html_ac609142ee5a0caaf3ac51238ec421c2e"><div class="ttname"><a href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
1976
1975
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a615623a08324ee155cb527a3b57e8c19"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">SVF::MTAResultValidator::rthdTovthd</a></div><div class="ttdeci">rthdTovthdMap rthdTovthd</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00140">MTAResultValidator.h:140</a></div></div>
|
|
1977
1976
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01112">SparseBitVector.h:1112</a></div></div>
|
|
1978
1977
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
@@ -1980,6 +1979,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
1980
1979
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a8452bf182f6f1e0f4c239f620ee803b1"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">SVF::MTAResultValidator::instToTSMap</a></div><div class="ttdeci">MHP::InstToThreadStmtSetMap instToTSMap</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00128">MTAResultValidator.h:128</a></div></div>
|
|
1981
1980
|
<div class="ttc" id="classSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00239">SVFValue.h:239</a></div></div>
|
|
1982
1981
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1af033b5742fa9cc1e4f9873184775b7"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">SVF::MTAResultValidator::dumpInterlev</a></div><div class="ttdeci">void dumpInterlev(NodeBS &lev)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00200">MTAResultValidator.cpp:200</a></div></div>
|
|
1982
|
+
<div class="ttc" id="classSVF_1_1Options_html_a944aee270c78d42c998691da283165f1"><div class="ttname"><a href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const Option< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
1983
1983
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01107">SparseBitVector.h:1107</a></div></div>
|
|
1984
1984
|
<div class="ttc" id="classSVF_1_1MHP_html_a653460ed316804bea377eecdde412d36"><div class="ttname"><a href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">SVF::MHP::getInterleavingThreads</a></div><div class="ttdeci">const NodeBS & getInterleavingThreads(const CxtThreadStmt &cts)</div><div class="ttdoc">Get interleaving thread for statement inst. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00114">MHP.h:114</a></div></div>
|
|
1985
1985
|
<div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt & getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
|
|
@@ -2016,19 +2016,19 @@ Static Private Attributes</h2></td></tr>
|
|
|
2016
2016
|
</div><div class="memdoc">
|
|
2017
2017
|
|
|
2018
2018
|
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00445">445</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
2019
|
-
<div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordtype">bool</span> res_node = <span class="keyword">true</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1TCTNode.html">TCTNode</a>* pnode = tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(i);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">for</span> (TCT::ThreadCreateEdgeSet::const_iterator ci = tct-><a class="code" href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">getChildrenBegin</a>(pnode), cei = tct-><a class="code" href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">getChildrenEnd</a>(pnode); ci != cei;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  ci++)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].find(tid) == <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end())</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<NodeID>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end(); j != ej; j++)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> gid = *j;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">if</span> (!tct-><a class="code" href="classSVF_1_1TCT.html#adb2025048dc69f0689f526c58df29802">hasGraphEdge</a>(pnode, tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(gid), <a class="code" href="classSVF_1_1TCTEdge.html#a18644ee9ae37b03254afb077dca5494fac7915e379517d9d17b770540adb577c8">TCTEdge::ThreadCreateEdge</a>))</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">if</span> ((!res_node) && <a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate TCT: Wrong at TID "</span>) << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given children: \t"</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<NodeID>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end(); j != ej; j++)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> gid = *j;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[gid] << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nAnalysis children:\t"</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">for</span> (TCT::ThreadCreateEdgeSet::const_iterator ci = tct-><a class="code" href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">getChildrenBegin</a>(pnode), cei = tct-><a class="code" href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">getChildrenEnd</a>(pnode); ci != cei;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  ci++)</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[tid] << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2019
|
+
<div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a2a21cbdf9513e9fe4fa6c6ae56618b18">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordtype">bool</span> res_node = <span class="keyword">true</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1TCTNode.html">TCTNode</a>* pnode = tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(i);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">for</span> (TCT::ThreadCreateEdgeSet::const_iterator ci = tct-><a class="code" href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">getChildrenBegin</a>(pnode), cei = tct-><a class="code" href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">getChildrenEnd</a>(pnode); ci != cei;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  ci++)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].find(tid) == <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end())</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<NodeID>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end(); j != ej; j++)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> gid = *j;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">if</span> (!tct-><a class="code" href="classSVF_1_1TCT.html#adb2025048dc69f0689f526c58df29802">hasGraphEdge</a>(pnode, tct-><a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(gid), <a class="code" href="classSVF_1_1TCTEdge.html#a18644ee9ae37b03254afb077dca5494fac7915e379517d9d17b770540adb577c8">TCTEdge::ThreadCreateEdge</a>))</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">if</span> ((!res_node) && <a class="code" href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">Options::PrintValidRes</a>())</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<span class="stringliteral">"\nValidate TCT: Wrong at TID "</span>) << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"Given children: \t"</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<NodeID>::iterator</a> j = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].begin(), ej = <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[i].end(); j != ej; j++)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> gid = *j;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[gid] << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\nAnalysis children:\t"</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">for</span> (TCT::ThreadCreateEdgeSet::const_iterator ci = tct-><a class="code" href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">getChildrenBegin</a>(pnode), cei = tct-><a class="code" href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">getChildrenEnd</a>(pnode); ci != cei;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  ci++)</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[tid] << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
2020
2020
|
<div class="ttc" id="classSVF_1_1TCT_html_a511c2ee4cfdc01a720135b2cd493fe3b"><div class="ttname"><a href="classSVF_1_1TCT.html#a511c2ee4cfdc01a720135b2cd493fe3b">SVF::TCT::getChildrenBegin</a></div><div class="ttdeci">ThreadCreateEdgeSet::const_iterator getChildrenBegin(const TCTNode *node) const</div><div class="ttdoc">Get children and parent nodes. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00203">TCT.h:203</a></div></div>
|
|
2021
2021
|
<div class="ttc" id="classSVF_1_1TCT_html_adb2025048dc69f0689f526c58df29802"><div class="ttname"><a href="classSVF_1_1TCT.html#adb2025048dc69f0689f526c58df29802">SVF::TCT::hasGraphEdge</a></div><div class="ttdeci">TCTEdge * hasGraphEdge(TCTNode *src, TCTNode *dst, TCTEdge::CEDGEK kind) const</div><div class="ttdoc">Whether we have aleady created this call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00533">TCT.cpp:533</a></div></div>
|
|
2022
2022
|
<div class="ttc" id="classSVF_1_1TCT_html_af03bfeae7e09a9f62d96ba59632e588f"><div class="ttname"><a href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">SVF::TCT::getTCTNodeNum</a></div><div class="ttdeci">u32_t getTCTNodeNum() const</div><div class="ttdoc">Get Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00235">TCT.h:235</a></div></div>
|
|
2023
2023
|
<div class="ttc" id="classSVF_1_1TCTNode_html"><div class="ttname"><a href="classSVF_1_1TCTNode.html">SVF::TCTNode</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00085">TCT.h:85</a></div></div>
|
|
2024
2024
|
<div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00192">TCT.h:192</a></div></div>
|
|
2025
2025
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
|
|
2026
|
-
<div class="ttc" id="classSVF_1_1Options_html_ac609142ee5a0caaf3ac51238ec421c2e"><div class="ttname"><a href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
2027
2026
|
<div class="ttc" id="classSVF_1_1TCT_html_af47837e30a80e8d6684f3ee6001afb7a"><div class="ttname"><a href="classSVF_1_1TCT.html#af47837e30a80e8d6684f3ee6001afb7a">SVF::TCT::getChildrenEnd</a></div><div class="ttdeci">ThreadCreateEdgeSet::const_iterator getChildrenEnd(const TCTNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00207">TCT.h:207</a></div></div>
|
|
2028
2027
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a615623a08324ee155cb527a3b57e8c19"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">SVF::MTAResultValidator::rthdTovthd</a></div><div class="ttdeci">rthdTovthdMap rthdTovthd</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00140">MTAResultValidator.h:140</a></div></div>
|
|
2029
2028
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
2030
2029
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a542f2f41c90698270687fc7858a26555"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">SVF::MTAResultValidator::rthdToChildren</a></div><div class="ttdeci">rthdToChildrenMap rthdToChildren</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00142">MTAResultValidator.h:142</a></div></div>
|
|
2031
2030
|
<div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00082">MHP.h:82</a></div></div>
|
|
2031
|
+
<div class="ttc" id="classSVF_1_1Options_html_a944aee270c78d42c998691da283165f1"><div class="ttname"><a href="classSVF_1_1Options.html#a944aee270c78d42c998691da283165f1">SVF::Options::PrintValidRes</a></div><div class="ttdeci">static const Option< bool > PrintValidRes</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00185">Options.h:185</a></div></div>
|
|
2032
2032
|
<div class="ttc" id="classSVF_1_1TCTEdge_html_a18644ee9ae37b03254afb077dca5494fac7915e379517d9d17b770540adb577c8"><div class="ttname"><a href="classSVF_1_1TCTEdge.html#a18644ee9ae37b03254afb077dca5494fac7915e379517d9d17b770540adb577c8">SVF::TCTEdge::ThreadCreateEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00055">TCT.h:55</a></div></div>
|
|
2033
2033
|
<div class="ttc" id="classSVF_1_1TCT_html"><div class="ttname"><a href="classSVF_1_1TCT.html">SVF::TCT</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00135">TCT.h:135</a></div></div>
|
|
2034
2034
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00075">SVFUtil.cpp:75</a></div></div>
|