svf-tools 1.0.425 → 1.0.428
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/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/Andersen_8h_source.html +9 -9
- package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +10 -9
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +9 -8
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +25 -25
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Conditions_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +13 -13
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +6 -6
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +29 -29
- package/SVF-doxygen/html/html/DCHG_8h_source.html +14 -14
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +10 -11
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +13 -13
- package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +9 -9
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +11 -11
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +22 -22
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +9 -9
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +11 -9
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +21 -18
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
- package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +1 -0
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +22 -21
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +10 -10
- package/SVF-doxygen/html/html/MHP_8cpp.html +8 -7
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +63 -62
- package/SVF-doxygen/html/html/MHP_8h_source.html +37 -37
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +1 -0
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +41 -40
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +29 -29
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTA_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +25 -28
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +52 -46
- package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -0
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -69
- package/SVF-doxygen/html/html/PathDPItem_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +56 -58
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +31 -31
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +44 -45
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +18 -18
- package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +554 -11
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +37 -7
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +7 -13
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +38 -41
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +15 -15
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SVFG_8h_source.html +16 -16
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +63 -62
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +48 -48
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +15 -15
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +13 -11
- package/SVF-doxygen/html/html/SaberAnnotator_8h.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +7 -8
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +5 -5
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +58 -58
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +103 -104
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +135 -139
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/TCT_8h_source.html +18 -18
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +25 -25
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +6 -6
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -69
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +119 -153
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +165 -170
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/VFG_8h_source.html +22 -22
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +12 -12
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +266 -267
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +20 -23
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +226 -227
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +279 -280
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +288 -289
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +276 -277
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +275 -276
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +287 -288
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +274 -275
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -4
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +173 -174
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +24 -71
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +33 -36
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +24 -26
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +25 -28
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +166 -167
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +120 -168
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +266 -267
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +31 -34
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +19 -20
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +28 -72
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +293 -294
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +259 -260
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +284 -285
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -46
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +324 -325
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +25 -28
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +65 -65
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +119 -119
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +104 -104
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +88 -88
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +34 -49
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +26 -25
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +256 -217
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +129 -130
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -150
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +35 -32
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +35 -31
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +240 -241
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -4
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +104 -104
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +5 -7
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +215 -281
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +232 -233
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -9
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +35 -37
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFPathCond.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +337 -338
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -15
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +19 -20
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +24 -68
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +4 -4
- package/SVF-doxygen/html/html/classes.html +96 -97
- package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
- package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_d.html +0 -3
- package/SVF-doxygen/html/html/functions_e.html +2 -2
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +10 -10
- package/SVF-doxygen/html/html/functions_func_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_e.html +2 -2
- package/SVF-doxygen/html/html/functions_func_g.html +6 -8
- package/SVF-doxygen/html/html/functions_func_o.html +1 -2
- package/SVF-doxygen/html/html/functions_g.html +5 -7
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +11 -10
- package/SVF-doxygen/html/html/functions_p.html +4 -4
- package/SVF-doxygen/html/html/functions_r.html +3 -3
- package/SVF-doxygen/html/html/functions_s.html +6 -4
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_d.html +0 -3
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/globals.html +6 -0
- package/SVF-doxygen/html/html/globals_b.html +6 -0
- package/SVF-doxygen/html/html/globals_c.html +118 -100
- package/SVF-doxygen/html/html/globals_f.html +9 -3
- package/SVF-doxygen/html/html/globals_g.html +3 -0
- package/SVF-doxygen/html/html/globals_i.html +14 -2
- package/SVF-doxygen/html/html/globals_l.html +3 -0
- package/SVF-doxygen/html/html/globals_m.html +17 -14
- package/SVF-doxygen/html/html/globals_p.html +3 -0
- package/SVF-doxygen/html/html/globals_r.html +3 -0
- package/SVF-doxygen/html/html/globals_s.html +27 -22
- package/SVF-doxygen/html/html/globals_type.html +114 -0
- package/SVF-doxygen/html/html/globals_u.html +8 -2
- package/SVF-doxygen/html/html/globals_v.html +12 -0
- package/SVF-doxygen/html/html/hierarchy.html +149 -150
- package/SVF-doxygen/html/html/menudata.js +25 -19
- package/SVF-doxygen/html/html/namespaceSVF.html +128 -779
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +128 -95
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
- package/SVF-doxygen/html/html/namespacemembers.html +0 -6
- package/SVF-doxygen/html/html/namespacemembers_b.html +2 -8
- package/SVF-doxygen/html/html/namespacemembers_c.html +2 -26
- package/SVF-doxygen/html/html/namespacemembers_f.html +0 -6
- package/SVF-doxygen/html/html/namespacemembers_func.html +6 -3
- package/SVF-doxygen/html/html/namespacemembers_g.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_i.html +10 -22
- package/SVF-doxygen/html/html/namespacemembers_l.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_m.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_p.html +0 -6
- package/SVF-doxygen/html/html/namespacemembers_r.html +1 -4
- package/SVF-doxygen/html/html/namespacemembers_s.html +1 -19
- package/SVF-doxygen/html/html/namespacemembers_type.html +560 -4
- package/SVF-doxygen/html/html/namespacemembers_u.html +0 -6
- package/SVF-doxygen/html/html/namespacemembers_v.html +0 -12
- package/SVF-doxygen/html/html/search/all_1.js +6 -6
- package/SVF-doxygen/html/html/search/all_10.js +8 -9
- package/SVF-doxygen/html/html/search/all_12.js +3 -3
- package/SVF-doxygen/html/html/search/all_13.js +10 -13
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +6 -6
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +3 -3
- package/SVF-doxygen/html/html/search/all_3.js +7 -9
- package/SVF-doxygen/html/html/search/all_4.js +0 -1
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_6.js +3 -3
- package/SVF-doxygen/html/html/search/all_7.js +3 -3
- package/SVF-doxygen/html/html/search/all_8.js +0 -1
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_7.js +0 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_6.js +2 -2
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_0.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +4 -7
- package/SVF-doxygen/html/html/search/typedefs_13.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_14.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_2.js +7 -9
- package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_8.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -2
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +0 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +19 -19
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +19 -19
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
- package/clean.sh +2 -2
- package/include/DDA/DDAPass.h +0 -6
- package/include/Graphs/VFGNode.h +4 -18
- package/include/MemoryModel/PointerAnalysis.h +0 -4
- package/include/MemoryModel/PointerAnalysisImpl.h +0 -10
- package/include/MemoryModel/SVFVariables.h +4 -4
- package/include/MemoryModel/SymbolTableInfo.h +0 -11
- package/include/SABER/PathCondAllocator.h +9 -2
- package/include/SABER/SaberAnnotator.h +4 -4
- package/include/SVF-FE/BasicTypes.h +41 -2
- package/include/SVF-FE/LLVMUtil.h +7 -0
- package/include/Util/BasicTypes.h +0 -35
- package/include/Util/SVFBasicTypes.h +6 -27
- package/include/Util/SVFUtil.h +1 -1
- package/include/WPA/WPAPass.h +0 -6
- package/lib/DDA/DDAPass.cpp +1 -1
- package/lib/MTA/LockResultValidator.cpp +1 -0
- package/lib/MTA/MHP.cpp +1 -0
- package/lib/MTA/MTAResultValidator.cpp +1 -0
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -9
- package/lib/MemoryModel/SVFVariables.cpp +2 -2
- package/lib/MemoryModel/SymbolTableInfo.cpp +0 -5
- package/lib/SABER/PathCondAllocator.cpp +32 -27
- package/lib/SABER/ProgSlice.cpp +7 -4
- package/lib/SABER/SaberAnnotator.cpp +8 -8
- package/lib/SVF-FE/BreakConstantExpr.cpp +1 -0
- package/lib/SVF-FE/LLVMUtil.cpp +3 -2
- package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
- package/lib/Util/PTAStat.cpp +3 -1
- package/package.json +1 -1
|
@@ -103,13 +103,13 @@ Protected Member Functions</h2></td></tr>
|
|
|
103
103
|
<tr class="separator:a4ff908be3569c18528fb6f6ff98cd11a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
104
|
<tr class="memitem:a1ac51d2847f9bdee27092ab22211bb61"><td class="memItemLeft" align="right" valign="top">std::vector< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst, unsigned int arg_num)</td></tr>
|
|
105
105
|
<tr class="separator:a1ac51d2847f9bdee27092ab22211bb61"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
|
-
<tr class="memitem:afb110fec926967ba334bf2635d58a339"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#
|
|
106
|
+
<tr class="memitem:afb110fec926967ba334bf2635d58a339"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">getCxtArg</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst, unsigned int arg_num)</td></tr>
|
|
107
107
|
<tr class="separator:afb110fec926967ba334bf2635d58a339"><td class="memSeparator" colspan="2"> </td></tr>
|
|
108
108
|
<tr class="memitem:ab3ba3c6d9c40e97febdab0e7d4ad9a3e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">getPreviousMemoryAccessInst</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I)</td></tr>
|
|
109
109
|
<tr class="separator:ab3ba3c6d9c40e97febdab0e7d4ad9a3e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
|
-
<tr class="memitem:a6306899b5360e106dd090bea571027bf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a> (const <a class="el" href="namespaceSVF.html#
|
|
110
|
+
<tr class="memitem:a6306899b5360e106dd090bea571027bf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a> (const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt1, const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt2) const</td></tr>
|
|
111
111
|
<tr class="separator:a6306899b5360e106dd090bea571027bf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
112
|
-
<tr class="memitem:ae7d61becd14123f60976fd7261d0c84d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a> (const <a class="el" href="namespaceSVF.html#
|
|
112
|
+
<tr class="memitem:ae7d61becd14123f60976fd7261d0c84d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a> (const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> &cxt) const</td></tr>
|
|
113
113
|
<tr class="separator:ae7d61becd14123f60976fd7261d0c84d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
114
114
|
<tr class="memitem:a1af033b5742fa9cc1e4f9873184775b7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a> (<a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &lev)</td></tr>
|
|
115
115
|
<tr class="separator:a1af033b5742fa9cc1e4f9873184775b7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -136,7 +136,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
136
136
|
Private Types</h2></td></tr>
|
|
137
137
|
<tr class="memitem:ab2d02695cc8e6fc9e9a46d9d26466fb1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, const <a class="el" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#ab2d02695cc8e6fc9e9a46d9d26466fb1">csnumToInst</a></td></tr>
|
|
138
138
|
<tr class="separator:ab2d02695cc8e6fc9e9a46d9d26466fb1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
139
|
-
<tr class="memitem:a1392757f98b54057d33adb125fd48efa"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#
|
|
139
|
+
<tr class="memitem:a1392757f98b54057d33adb125fd48efa"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a1392757f98b54057d33adb125fd48efa">vthdToCxtMap</a></td></tr>
|
|
140
140
|
<tr class="separator:a1392757f98b54057d33adb125fd48efa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
141
141
|
<tr class="memitem:a7fc576e83fa259d0ab06d54c3537c4ac"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>< <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTAResultValidator.html#a7fc576e83fa259d0ab06d54c3537c4ac">vthdTorthdMap</a></td></tr>
|
|
142
142
|
<tr class="separator:a7fc576e83fa259d0ab06d54c3537c4ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -290,7 +290,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
290
290
|
<td class="mlabels-left">
|
|
291
291
|
<table class="memname">
|
|
292
292
|
<tr>
|
|
293
|
-
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#
|
|
293
|
+
<td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>> <a class="el" href="classSVF_1_1MTAResultValidator.html#a1392757f98b54057d33adb125fd48efa">SVF::MTAResultValidator::vthdToCxtMap</a></td>
|
|
294
294
|
</tr>
|
|
295
295
|
</table>
|
|
296
296
|
</td>
|
|
@@ -408,17 +408,17 @@ Static Private Attributes</h2></td></tr>
|
|
|
408
408
|
</table>
|
|
409
409
|
</div><div class="memdoc">
|
|
410
410
|
|
|
411
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
412
|
-
<div class="fragment"><div class="line"><a name="
|
|
413
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a373b5227fbfa82ac070f55db999afb28"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a373b5227fbfa82ac070f55db999afb28">SVF::MTAResultValidator::validateInterleaving</a></div><div class="ttdeci">INTERLEV_FLAG validateInterleaving()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
414
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a3c3eacff786230d093d27615ff360ed4"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a3c3eacff786230d093d27615ff360ed4">SVF::MTAResultValidator::collectInterleavingTargets</a></div><div class="ttdeci">bool collectInterleavingTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
415
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afa01b108b67ec2ac05a6444b55dbfe01"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afa01b108b67ec2ac05a6444b55dbfe01">SVF::MTAResultValidator::validateCxtThread</a></div><div class="ttdeci">bool validateCxtThread()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
416
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae6a18cbaf113ee8e28c3e8dca458d4be"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae6a18cbaf113ee8e28c3e8dca458d4be">SVF::MTAResultValidator::validateTCT</a></div><div class="ttdeci">bool validateTCT()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
417
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a9c9baeb57a645b57cc9053b3071f0602"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">SVF::MTAResultValidator::getOutput</a></div><div class="ttdeci">std::string getOutput(const char *scenario, bool analysisRes)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
418
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1fc4116b134aa87420d055b193208e68"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1fc4116b134aa87420d055b193208e68">SVF::MTAResultValidator::collectCallsiteTargets</a></div><div class="ttdeci">bool collectCallsiteTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
411
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00019">19</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
412
|
+
<div class="fragment"><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  std::string errstring;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1MTAResultValidator.html#a1fc4116b134aa87420d055b193208e68">collectCallsiteTargets</a>())</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1MTAResultValidator.html#a430c03371b2b5b7300c5c3a68d633909">collectCxtThreadTargets</a>())</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  errstring = <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"Validate CxtThread:"</span>, <a class="code" href="classSVF_1_1MTAResultValidator.html#afa01b108b67ec2ac05a6444b55dbfe01">validateCxtThread</a>());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"======"</span> << errstring << <span class="stringliteral">"======\n"</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1MTAResultValidator.html#abdf31e8fca824b56a53788de525042a6">collectTCTTargets</a>())</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  errstring = <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"Validate TCT: "</span>, <a class="code" href="classSVF_1_1MTAResultValidator.html#ae6a18cbaf113ee8e28c3e8dca458d4be">validateTCT</a>());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"======"</span> << errstring << <span class="stringliteral">"======\n"</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1MTAResultValidator.html#a3c3eacff786230d093d27615ff360ed4">collectInterleavingTargets</a>())</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  errstring = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac24a8a6922d9dc9edecab3bc45bc9204">getOutputforInterlevAnalysis</a>(<span class="stringliteral">"Validate Interleaving:"</span>, <a class="code" href="classSVF_1_1MTAResultValidator.html#a373b5227fbfa82ac070f55db999afb28">validateInterleaving</a>());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"======"</span> << errstring << <span class="stringliteral">"======\n"</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> }</div><div class="ttc" id="classSVF_1_1MTAResultValidator_html_ac24a8a6922d9dc9edecab3bc45bc9204"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ac24a8a6922d9dc9edecab3bc45bc9204">SVF::MTAResultValidator::getOutputforInterlevAnalysis</a></div><div class="ttdeci">std::string getOutputforInterlevAnalysis(const char *scenario, INTERLEV_FLAG analysisRes)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00131">MTAResultValidator.cpp:131</a></div></div>
|
|
413
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a373b5227fbfa82ac070f55db999afb28"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a373b5227fbfa82ac070f55db999afb28">SVF::MTAResultValidator::validateInterleaving</a></div><div class="ttdeci">INTERLEV_FLAG validateInterleaving()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00451">MTAResultValidator.cpp:451</a></div></div>
|
|
414
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a3c3eacff786230d093d27615ff360ed4"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a3c3eacff786230d093d27615ff360ed4">SVF::MTAResultValidator::collectInterleavingTargets</a></div><div class="ttdeci">bool collectInterleavingTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00281">MTAResultValidator.cpp:281</a></div></div>
|
|
415
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afa01b108b67ec2ac05a6444b55dbfe01"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afa01b108b67ec2ac05a6444b55dbfe01">SVF::MTAResultValidator::validateCxtThread</a></div><div class="ttdeci">bool validateCxtThread()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00325">MTAResultValidator.cpp:325</a></div></div>
|
|
416
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae6a18cbaf113ee8e28c3e8dca458d4be"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae6a18cbaf113ee8e28c3e8dca458d4be">SVF::MTAResultValidator::validateTCT</a></div><div class="ttdeci">bool validateTCT()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00400">MTAResultValidator.cpp:400</a></div></div>
|
|
417
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a9c9baeb57a645b57cc9053b3071f0602"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">SVF::MTAResultValidator::getOutput</a></div><div class="ttdeci">std::string getOutput(const char *scenario, bool analysisRes)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00119">MTAResultValidator.cpp:119</a></div></div>
|
|
418
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1fc4116b134aa87420d055b193208e68"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1fc4116b134aa87420d055b193208e68">SVF::MTAResultValidator::collectCallsiteTargets</a></div><div class="ttdeci">bool collectCallsiteTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00185">MTAResultValidator.cpp:185</a></div></div>
|
|
419
419
|
<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>
|
|
420
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a430c03371b2b5b7300c5c3a68d633909"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a430c03371b2b5b7300c5c3a68d633909">SVF::MTAResultValidator::collectCxtThreadTargets</a></div><div class="ttdeci">bool collectCxtThreadTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
421
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_abdf31e8fca824b56a53788de525042a6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abdf31e8fca824b56a53788de525042a6">SVF::MTAResultValidator::collectTCTTargets</a></div><div class="ttdeci">bool collectTCTTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
420
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a430c03371b2b5b7300c5c3a68d633909"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a430c03371b2b5b7300c5c3a68d633909">SVF::MTAResultValidator::collectCxtThreadTargets</a></div><div class="ttdeci">bool collectCxtThreadTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00215">MTAResultValidator.cpp:215</a></div></div>
|
|
421
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_abdf31e8fca824b56a53788de525042a6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abdf31e8fca824b56a53788de525042a6">SVF::MTAResultValidator::collectTCTTargets</a></div><div class="ttdeci">bool collectTCTTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00248">MTAResultValidator.cpp:248</a></div></div>
|
|
422
422
|
</div><!-- fragment -->
|
|
423
423
|
</div>
|
|
424
424
|
</div>
|
|
@@ -445,13 +445,13 @@ Static Private Attributes</h2></td></tr>
|
|
|
445
445
|
</table>
|
|
446
446
|
</div><div class="memdoc">
|
|
447
447
|
|
|
448
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
449
|
-
<div class="fragment"><div class="line"><a name="
|
|
448
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00185">185</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
449
|
+
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> fi = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()->begin(), efi = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()->end(); fi != efi; ++fi)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">for</span> (Function::const_iterator bi = ((*fi)->getLLVMFun())->begin(), ebi = ((*fi)->getLLVMFun())->end(); bi != ebi; ++bi)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = &*bi;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (!bb->getName().str().compare(0, 2, <span class="stringliteral">"cs"</span>))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> csnum = atoi(bb->getName().str().substr(2).c_str());</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &bb->front();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">while</span> (1)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CallInst>(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  inst = inst->getNextNode();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(inst && <span class="stringliteral">"Wrong cs label, cannot find callsite"</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *csInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>>(inst);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>[csnum] = csInst;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>.empty())</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> }</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
|
|
450
450
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
451
451
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
452
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
452
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00127">BasicTypes.h:127</a></div></div>
|
|
453
453
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae2717c467dc7c49fab0ec93bfa4baaab"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">SVF::MTAResultValidator::csnumToInstMap</a></div><div class="ttdeci">csnumToInst csnumToInstMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00138">MTAResultValidator.h:138</a></div></div>
|
|
454
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
454
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
455
455
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_aecaf875c6c88f7ba6fa45540e8436f57"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">SVF::MTAResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00039">MTAResultValidator.h:39</a></div></div>
|
|
456
456
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
457
457
|
<div class="ttc" id="classSVF_1_1SVFModule_html_afcf2978f32e15127fb093405dc17d7f1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVF::SVFModule::const_iterator</a></div><div class="ttdeci">FunctionSetType::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00052">SVFModule.h:52</a></div></div>
|
|
@@ -481,20 +481,20 @@ Static Private Attributes</h2></td></tr>
|
|
|
481
481
|
</table>
|
|
482
482
|
</div><div class="memdoc">
|
|
483
483
|
|
|
484
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
485
|
-
<div class="fragment"><div class="line"><a name="
|
|
484
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00215">215</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
485
|
+
<div class="fragment"><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()->llvmFunBegin(); it != <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">const</span> std::string fName = (*it)->getName().str();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1MTAResultValidator.html#a251e16fc1fb663c238122dd6d2ba02e1">CXT_THREAD</a>) != std::string::npos) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  F = (*it);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (!F)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">// Push main thread into vthdToCxt;</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> main_cxt;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[0] = main_cxt;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// Collect call sites of all CXT_THREAD function calls.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">for</span> (Value::const_use_iterator it = F->use_begin(), ie = F->use_end(); it != ie; ++it)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &*it;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u->getUser();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(user);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdnum = <a class="code" href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">getIntArg</a>(inst, 0);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt = <a class="code" href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">getCxtArg</a>(inst, 1);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>[vthdnum] = cxt;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
486
486
|
<div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
|
|
487
487
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
488
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
488
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00059">MTAResultValidator.cpp:59</a></div></div>
|
|
489
489
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a251e16fc1fb663c238122dd6d2ba02e1"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a251e16fc1fb663c238122dd6d2ba02e1">SVF::MTAResultValidator::CXT_THREAD</a></div><div class="ttdeci">static constexpr char const * CXT_THREAD</div><div class="ttdoc">Map a statement to its thread interleavings. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00128">MTAResultValidator.h:128</a></div></div>
|
|
490
|
-
<div class="ttc" id="
|
|
491
|
-
<div class="ttc" id="
|
|
492
|
-
<div class="ttc" id="
|
|
490
|
+
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
491
|
+
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
|
|
492
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afb110fec926967ba334bf2635d58a339"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">SVF::MTAResultValidator::getCxtArg</a></div><div class="ttdeci">CallStrCxt getCxtArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00085">MTAResultValidator.cpp:85</a></div></div>
|
|
493
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
493
494
|
<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="MTAResultValidator_8h_source.html#l00135">MTAResultValidator.h:135</a></div></div>
|
|
494
|
-
<div class="ttc" id="namespaceSVF_html_a542c6d5483bfc74fa58b45ad06b65960"><div class="ttname"><a href="namespaceSVF.html#a542c6d5483bfc74fa58b45ad06b65960">SVF::CallStrCxt</a></div><div class="ttdeci">SmallVector16 CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
495
495
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_aecaf875c6c88f7ba6fa45540e8436f57"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">SVF::MTAResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00039">MTAResultValidator.h:39</a></div></div>
|
|
496
496
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
497
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
497
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
|
|
498
498
|
</div><!-- fragment -->
|
|
499
499
|
</div>
|
|
500
500
|
</div>
|
|
@@ -521,26 +521,26 @@ Static Private Attributes</h2></td></tr>
|
|
|
521
521
|
</table>
|
|
522
522
|
</div><div class="memdoc">
|
|
523
523
|
|
|
524
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
525
|
-
<div class="fragment"><div class="line"><a name="
|
|
524
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00281">281</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
525
|
+
<div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// Collect call sites of all INTERLEV_ACCESS function calls.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()->llvmFunBegin(); it != <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">const</span> std::string fName = (*it)->getName().str();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1MTAResultValidator.html#a7b47044960a12203ce0ce245c4c9c8ec">INTERLEV_ACCESS</a>) != std::string::npos) {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  F = (*it);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span> (!F)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">for</span> (Value::const_use_iterator it = F->use_begin(), ie = F->use_end(); it != ie; ++it)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &*it;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u->getUser();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(user);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdnum = <a class="code" href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">getIntArg</a>(inst, 0);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rthdnum = <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdnum];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> x = <a class="code" href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">getCxtArg</a>(inst, 1);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  std::vector<std::string> y = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(inst, 2);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// Record given interleaving</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="comment">// Push thread itself into interleaving set</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  lev.set(rthdnum);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// Find rthd of given vthd and push it into interleaving set</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">for</span> (std::vector<std::string>::iterator i = y.begin(); i != y.end(); i++)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  lev.set(<a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[atoi((*i).c_str())]);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* memInst = <a class="code" href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">getPreviousMemoryAccessInst</a>(inst);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a> cts(rthdnum, x, memInst);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>[memInst].insert(cts);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>[cts] = lev;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
526
526
|
<div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
|
|
527
527
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
528
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
529
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ab3ba3c6d9c40e97febdab0e7d4ad9a3e"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">SVF::MTAResultValidator::getPreviousMemoryAccessInst</a></div><div class="ttdeci">const Instruction * getPreviousMemoryAccessInst(const Instruction *I)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
528
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00059">MTAResultValidator.cpp:59</a></div></div>
|
|
529
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ab3ba3c6d9c40e97febdab0e7d4ad9a3e"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">SVF::MTAResultValidator::getPreviousMemoryAccessInst</a></div><div class="ttdeci">const Instruction * getPreviousMemoryAccessInst(const Instruction *I)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00107">MTAResultValidator.cpp:107</a></div></div>
|
|
530
530
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7382b2759b01b8382c5e59b21e7e262a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">SVF::MTAResultValidator::vthdTorthd</a></div><div class="ttdeci">vthdTorthdMap vthdTorthd</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00136">MTAResultValidator.h:136</a></div></div>
|
|
531
531
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7b47044960a12203ce0ce245c4c9c8ec"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7b47044960a12203ce0ce245c4c9c8ec">SVF::MTAResultValidator::INTERLEV_ACCESS</a></div><div class="ttdeci">static constexpr char const * INTERLEV_ACCESS</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00129">MTAResultValidator.h:129</a></div></div>
|
|
532
|
+
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
532
533
|
<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="MTAResultValidator_8h_source.html#l00126">MTAResultValidator.h:126</a></div></div>
|
|
533
|
-
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
534
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afb110fec926967ba334bf2635d58a339"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">SVF::MTAResultValidator::getCxtArg</a></div><div class="ttdeci">CallStrCxt getCxtArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
535
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
536
|
-
<div class="ttc" id="namespaceSVF_html_a542c6d5483bfc74fa58b45ad06b65960"><div class="ttname"><a href="namespaceSVF.html#a542c6d5483bfc74fa58b45ad06b65960">SVF::CallStrCxt</a></div><div class="ttdeci">SmallVector16 CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
534
|
+
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
|
|
535
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afb110fec926967ba334bf2635d58a339"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">SVF::MTAResultValidator::getCxtArg</a></div><div class="ttdeci">CallStrCxt getCxtArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00085">MTAResultValidator.cpp:85</a></div></div>
|
|
536
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
537
537
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_aecaf875c6c88f7ba6fa45540e8436f57"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">SVF::MTAResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00039">MTAResultValidator.h:39</a></div></div>
|
|
538
538
|
<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="MTAResultValidator_8h_source.html#l00125">MTAResultValidator.h:125</a></div></div>
|
|
539
|
-
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
539
|
+
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
|
|
540
540
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
541
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
541
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00068">MTAResultValidator.cpp:68</a></div></div>
|
|
542
542
|
<div class="ttc" id="classSVF_1_1CxtThreadStmt_html"><div class="ttname"><a href="classSVF_1_1CxtThreadStmt.html">SVF::CxtThreadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00123">CxtStmt.h:123</a></div></div>
|
|
543
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
543
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
|
|
544
544
|
</div><!-- fragment -->
|
|
545
545
|
</div>
|
|
546
546
|
</div>
|
|
@@ -567,19 +567,19 @@ Static Private Attributes</h2></td></tr>
|
|
|
567
567
|
</table>
|
|
568
568
|
</div><div class="memdoc">
|
|
569
569
|
|
|
570
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
571
|
-
<div class="fragment"><div class="line"><a name="
|
|
570
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00248">248</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
571
|
+
<div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// Collect call sites of all TCT_ACCESS function calls.</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()->llvmFunBegin(); it != <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> std::string fName = (*it)->getName().str();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1MTAResultValidator.html#ae709b039a68f5600271c40903b1c0dbe">TCT_ACCESS</a>) != std::string::npos) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  F = (*it);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">if</span> (!F)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">for</span> (Value::const_use_iterator it = F->use_begin(), ie = F->use_end(); it != ie; ++it)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &*it;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u->getUser();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(user);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdnum = <a class="code" href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">getIntArg</a>(inst, 0);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rthdnum = <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdnum];</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  std::vector<std::string> x = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(inst, 1);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">for</span> (std::vector<std::string>::iterator i = x.begin(); i != x.end(); i++)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>[rthdnum].insert(<a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[atoi((*i).c_str())]);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> }</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
572
572
|
<div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
|
|
573
573
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
574
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
574
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00059">MTAResultValidator.cpp:59</a></div></div>
|
|
575
575
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7382b2759b01b8382c5e59b21e7e262a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">SVF::MTAResultValidator::vthdTorthd</a></div><div class="ttdeci">vthdTorthdMap vthdTorthd</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00136">MTAResultValidator.h:136</a></div></div>
|
|
576
|
-
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
577
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
576
|
+
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
|
|
577
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
578
578
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_aecaf875c6c88f7ba6fa45540e8436f57"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">SVF::MTAResultValidator::getModule</a></div><div class="ttdeci">SVFModule * getModule() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00039">MTAResultValidator.h:39</a></div></div>
|
|
579
579
|
<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="MTAResultValidator_8h_source.html#l00139">MTAResultValidator.h:139</a></div></div>
|
|
580
580
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
581
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
582
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
581
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00068">MTAResultValidator.cpp:68</a></div></div>
|
|
582
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
|
|
583
583
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae709b039a68f5600271c40903b1c0dbe"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae709b039a68f5600271c40903b1c0dbe">SVF::MTAResultValidator::TCT_ACCESS</a></div><div class="ttdeci">static constexpr char const * TCT_ACCESS</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00130">MTAResultValidator.h:130</a></div></div>
|
|
584
584
|
</div><!-- fragment -->
|
|
585
585
|
</div>
|
|
@@ -596,7 +596,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
596
596
|
<tr>
|
|
597
597
|
<td class="memname">void MTAResultValidator::dumpCxt </td>
|
|
598
598
|
<td>(</td>
|
|
599
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#
|
|
599
|
+
<td class="paramtype">const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> & </td>
|
|
600
600
|
<td class="paramname"><em>cxt</em></td><td>)</td>
|
|
601
601
|
<td> const</td>
|
|
602
602
|
</tr>
|
|
@@ -608,11 +608,11 @@ Static Private Attributes</h2></td></tr>
|
|
|
608
608
|
</table>
|
|
609
609
|
</div><div class="memdoc">
|
|
610
610
|
|
|
611
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
612
|
-
<div class="fragment"><div class="line"><a name="
|
|
611
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00159">159</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
612
|
+
<div class="fragment"><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  std::string str;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  rawstr << <span class="stringliteral">"[:"</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">for</span> (CallStrCxt::const_iterator it = cxt.begin(), eit = cxt.end(); it != eit; ++it)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  rawstr << <span class="stringliteral">" ' "</span> << *it << <span class="stringliteral">" ' "</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  rawstr << *(<a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a16e0017ad3a2d36d7efbc4383e394154">getCallSite</a>(*it)-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>());</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  rawstr << <span class="stringliteral">" call "</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a16e0017ad3a2d36d7efbc4383e394154">getCallSite</a>(*it)-><a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() << <span class="stringliteral">"-->"</span> << <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">getCalleeOfCallSite</a>(*it)-><a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() << <span class="stringliteral">", \n"</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  rawstr << <span class="stringliteral">" ]"</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"max cxt = "</span> << cxt.size() << rawstr.str() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a16e0017ad3a2d36d7efbc4383e394154"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a16e0017ad3a2d36d7efbc4383e394154">SVF::PTACallGraph::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(CallSiteID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00363">PTACallGraph.h:363</a></div></div>
|
|
613
613
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_abe087e2e8d92aa218ef282d2493193ef"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">SVF::MTAResultValidator::tcg</a></div><div class="ttdeci">ThreadCallGraph * tcg</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00133">MTAResultValidator.h:133</a></div></div>
|
|
614
614
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_aacd5f35171717cb4d758c17bef828a0f"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aacd5f35171717cb4d758c17bef828a0f">SVF::PTACallGraph::getCalleeOfCallSite</a></div><div class="ttdeci">const SVFFunction * getCalleeOfCallSite(CallSiteID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00371">PTACallGraph.h:371</a></div></div>
|
|
615
|
-
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
615
|
+
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
616
616
|
<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>
|
|
617
617
|
<div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00249">SVFBasicTypes.h:249</a></div></div>
|
|
618
618
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
@@ -644,8 +644,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
644
644
|
</table>
|
|
645
645
|
</div><div class="memdoc">
|
|
646
646
|
|
|
647
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
648
|
-
<div class="fragment"><div class="line"><a name="
|
|
647
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00174">174</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
648
|
+
<div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">" [ "</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">for</span> (NodeBS::iterator it = lev.begin(), eit = lev.end(); it != eit; it++)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = *it;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[id] << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"]\n"</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
649
649
|
<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="MTAResultValidator_8h_source.html#l00137">MTAResultValidator.h:137</a></div></div>
|
|
650
650
|
<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>
|
|
651
651
|
</div><!-- fragment -->
|
|
@@ -661,7 +661,7 @@ Static Private Attributes</h2></td></tr>
|
|
|
661
661
|
<td class="mlabels-left">
|
|
662
662
|
<table class="memname">
|
|
663
663
|
<tr>
|
|
664
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#
|
|
664
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> MTAResultValidator::getCxtArg </td>
|
|
665
665
|
<td>(</td>
|
|
666
666
|
<td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * </td>
|
|
667
667
|
<td class="paramname"><em>inst</em>, </td>
|
|
@@ -685,23 +685,23 @@ Static Private Attributes</h2></td></tr>
|
|
|
685
685
|
</table>
|
|
686
686
|
</div><div class="memdoc">
|
|
687
687
|
|
|
688
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
689
|
-
<div class="fragment"><div class="line"><a name="
|
|
690
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector< std::string > & split(const std::string &s, char delim, std::vector< std::string > &elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
688
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00085">85</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
689
|
+
<div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  std::vector<std::string> x = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(inst, arg_num);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">if</span> (0 == x.size())</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// Deal with the the second argument that records all callsites</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">for</span> (std::vector<std::string>::iterator i = x.begin(); i != x.end(); i++)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  std::vector<std::string> y = <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>((*i), <span class="charliteral">'.'</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  y[0].erase(y[0].find(<span class="stringliteral">"cs"</span>), 2);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVFUtil::getFunction</a>(y[1]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(<a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>[atoi(y[0].c_str())]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callee && <span class="stringliteral">"callee error"</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-><a class="code" href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">getCallICFGNode</a>(cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn, callee);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  cxt.push_back(csId);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> cxt;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> }</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
|
|
690
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector< std::string > & split(const std::string &s, char delim, std::vector< std::string > &elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00042">MTAResultValidator.cpp:42</a></div></div>
|
|
691
691
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_abe087e2e8d92aa218ef282d2493193ef"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">SVF::MTAResultValidator::tcg</a></div><div class="ttdeci">ThreadCallGraph * tcg</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00133">MTAResultValidator.h:133</a></div></div>
|
|
692
692
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
693
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
693
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00184">BasicTypes.h:184</a></div></div>
|
|
694
694
|
<div class="ttc" id="classSVF_1_1TCT_html_a238810a60f1010c5177e01683c8c1159"><div class="ttname"><a href="classSVF_1_1TCT.html#a238810a60f1010c5177e01683c8c1159">SVF::TCT::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdoc">Get CallICFGNode given inst. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00151">TCT.h:151</a></div></div>
|
|
695
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
695
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00266">BasicTypes.h:266</a></div></div>
|
|
696
696
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae2717c467dc7c49fab0ec93bfa4baaab"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">SVF::MTAResultValidator::csnumToInstMap</a></div><div class="ttdeci">csnumToInst csnumToInstMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00138">MTAResultValidator.h:138</a></div></div>
|
|
697
|
-
<div class="ttc" id="
|
|
698
|
-
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
697
|
+
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
698
|
+
<div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00089">SVFBasicTypes.h:89</a></div></div>
|
|
699
699
|
<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#l00059">MHP.h:59</a></div></div>
|
|
700
700
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
701
701
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
702
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
702
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00259">BasicTypes.h:259</a></div></div>
|
|
703
703
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4f457db1cfa0d4f94762a306c0ac3757"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4f457db1cfa0d4f94762a306c0ac3757">SVF::SVFUtil::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction(StringRef name)</div><div class="ttdoc">Get the corresponding Function based on its name. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00227">SVFUtil.h:227</a></div></div>
|
|
704
|
-
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#
|
|
704
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1ac51d2847f9bdee27092ab22211bb61"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">SVF::MTAResultValidator::getStringArg</a></div><div class="ttdeci">std::vector< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00068">MTAResultValidator.cpp:68</a></div></div>
|
|
705
705
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a6b3592525d5275d583c0726744d1f857"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">SVF::MTAResultValidator::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00134">MTAResultValidator.h:134</a></div></div>
|
|
706
706
|
</div><!-- fragment -->
|
|
707
707
|
</div>
|
|
@@ -740,14 +740,14 @@ Static Private Attributes</h2></td></tr>
|
|
|
740
740
|
</table>
|
|
741
741
|
</div><div class="memdoc">
|
|
742
742
|
|
|
743
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
744
|
-
<div class="fragment"><div class="line"><a name="
|
|
743
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00059">59</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
744
|
+
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<CallInst>(inst) && <span class="stringliteral">"getFirstIntArg: inst is not a callinst"</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* x = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>>(cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_num));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((arg_num < cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>()) && <span class="stringliteral">"Does not has this argument"</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>) x->getSExtValue();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
745
745
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
746
|
-
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
747
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
748
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
746
|
+
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
|
|
747
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00268">BasicTypes.h:268</a></div></div>
|
|
748
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00272">BasicTypes.h:272</a></div></div>
|
|
749
749
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
750
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
750
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00259">BasicTypes.h:259</a></div></div>
|
|
751
751
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
752
752
|
</div><!-- fragment -->
|
|
753
753
|
</div>
|
|
@@ -814,8 +814,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
814
814
|
</table>
|
|
815
815
|
</div><div class="memdoc">
|
|
816
816
|
|
|
817
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
818
|
-
<div class="fragment"><div class="line"><a name="
|
|
817
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00119">119</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
818
|
+
<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::string ret(scenario);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  ret += <span class="stringliteral">"\t"</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (analysisRes)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVFUtil::sucMsg</a>(<span class="stringliteral">"SUCCESS"</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">"FAILURE"</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
|
|
819
819
|
<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#l00078">SVFUtil.cpp:78</a></div></div>
|
|
820
820
|
</div><!-- fragment -->
|
|
821
821
|
</div>
|
|
@@ -854,8 +854,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
854
854
|
</table>
|
|
855
855
|
</div><div class="memdoc">
|
|
856
856
|
|
|
857
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
858
|
-
<div class="fragment"><div class="line"><a name="
|
|
857
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00131">131</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
858
|
+
<div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  std::string ret(scenario);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  ret += <span class="stringliteral">"\t"</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">switch</span> (analysisRes)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b">INTERLEV_TRUE</a>:</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVFUtil::sucMsg</a>(<span class="stringliteral">"SUCCESS"</span>);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">INTERLEV_UNSOUND</a>:</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">SVFUtil::bugMsg2</a>(<span class="stringliteral">"UNSOUND"</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">INTERLEV_IMPRECISE</a>:</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6c66553e2559eebfe4f98c0c7ec4b08">SVFUtil::bugMsg1</a>(<span class="stringliteral">"IMPRECISE"</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">"FAILURE"</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a054c3e668ce8b265bbc5d923f6243ce7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00088">SVFUtil.cpp:88</a></div></div>
|
|
859
859
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00056">SVFUtil.cpp:56</a></div></div>
|
|
860
860
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1c34f6a65688a3261ec27a35e9b9601b"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">SVF::MTAResultValidator::INTERLEV_UNSOUND</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_UNSOUND</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00145">MTAResultValidator.h:145</a></div></div>
|
|
861
861
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a3f3cc6bcc79e4125ef9a49857442319d"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">SVF::MTAResultValidator::INTERLEV_IMPRECISE</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_IMPRECISE</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00144">MTAResultValidator.h:144</a></div></div>
|
|
@@ -889,8 +889,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
889
889
|
</table>
|
|
890
890
|
</div><div class="memdoc">
|
|
891
891
|
|
|
892
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
893
|
-
<div class="fragment"><div class="line"><a name="
|
|
892
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00107">107</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
893
|
+
<div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  I = I->getPrevNode();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">while</span> (I)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(I) || SVFUtil::isa<StoreInst>(I))</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">return</span> I;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  I = I->getPrevNode();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div></div><!-- fragment -->
|
|
894
894
|
</div>
|
|
895
895
|
</div>
|
|
896
896
|
<a id="a1ac51d2847f9bdee27092ab22211bb61"></a>
|
|
@@ -927,17 +927,17 @@ Static Private Attributes</h2></td></tr>
|
|
|
927
927
|
</table>
|
|
928
928
|
</div><div class="memdoc">
|
|
929
929
|
|
|
930
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
931
|
-
<div class="fragment"><div class="line"><a name="
|
|
930
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00068">68</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
931
|
+
<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa<CallInst>(inst) && <span class="stringliteral">"getFirstIntArg: inst is not a callinst"</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(inst);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((arg_num < cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>()) && <span class="stringliteral">"Does not has this argument"</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>* gepinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a>>(cs.<a class="code" href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">getArgument</a>(arg_num));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* arrayinst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>>(gepinst->getOperand(0));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad9ebd847ed5d901cd30b1cfcdaec3462">ConstantDataArray</a>* cxtarray = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#ad9ebd847ed5d901cd30b1cfcdaec3462">ConstantDataArray</a>>(arrayinst->getOperand(0));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span> (!cxtarray)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::vector<std::string> strvec;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> strvec;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> vthdcxtstring = cxtarray->getAsCString();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(vthdcxtstring.str(), <span class="charliteral">','</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div><div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a255d310b1b573ca5c69fd715d7815d79"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a255d310b1b573ca5c69fd715d7815d79">GetElementPtrInst</a></div><div class="ttdeci">llvm::GetElementPtrInst GetElementPtrInst</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00038">BasicTypes.h:38</a></div></div>
|
|
932
|
+
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector< std::string > & split(const std::string &s, char delim, std::vector< std::string > &elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00042">MTAResultValidator.cpp:42</a></div></div>
|
|
932
933
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
933
|
-
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
934
|
-
<div class="ttc" id="namespaceSVF_html_ad9ebd847ed5d901cd30b1cfcdaec3462"><div class="ttname"><a href="namespaceSVF.html#ad9ebd847ed5d901cd30b1cfcdaec3462">SVF::ConstantDataArray</a></div><div class="ttdeci">llvm::ConstantDataArray ConstantDataArray</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
935
|
-
<div class="ttc" id="namespaceSVF_html_a88fd7387fcf16caf70abe265cdcf90b9"><div class="ttname"><a href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">SVF::StringRef</a></div><div class="ttdeci">llvm::StringRef StringRef</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
936
|
-
<div class="ttc" id="
|
|
937
|
-
<div class="ttc" id="
|
|
938
|
-
<div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00116">BasicTypes.h:116</a></div></div>
|
|
934
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a26a594d36bbb5b77e7085502812d9ca2"><div class="ttname"><a href="classSVF_1_1CallSite.html#a26a594d36bbb5b77e7085502812d9ca2">SVF::CallSite::getArgument</a></div><div class="ttdeci">Value * getArgument(unsigned ArgNo) const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00268">BasicTypes.h:268</a></div></div>
|
|
935
|
+
<div class="ttc" id="namespaceSVF_html_ad9ebd847ed5d901cd30b1cfcdaec3462"><div class="ttname"><a href="namespaceSVF.html#ad9ebd847ed5d901cd30b1cfcdaec3462">SVF::ConstantDataArray</a></div><div class="ttdeci">llvm::ConstantDataArray ConstantDataArray</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00117">BasicTypes.h:117</a></div></div>
|
|
936
|
+
<div class="ttc" id="namespaceSVF_html_a88fd7387fcf16caf70abe265cdcf90b9"><div class="ttname"><a href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">SVF::StringRef</a></div><div class="ttdeci">llvm::StringRef StringRef</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
|
|
937
|
+
<div class="ttc" id="classSVF_1_1CallSite_html_a145676880fce313b4634d14118476c27"><div class="ttname"><a href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">SVF::CallSite::arg_size</a></div><div class="ttdeci">unsigned arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00272">BasicTypes.h:272</a></div></div>
|
|
938
|
+
<div class="ttc" id="namespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
|
|
939
939
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00219">SVFUtil.h:219</a></div></div>
|
|
940
|
-
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
940
|
+
<div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00259">BasicTypes.h:259</a></div></div>
|
|
941
941
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
942
942
|
</div><!-- fragment -->
|
|
943
943
|
</div>
|
|
@@ -954,13 +954,13 @@ Static Private Attributes</h2></td></tr>
|
|
|
954
954
|
<tr>
|
|
955
955
|
<td class="memname">bool MTAResultValidator::matchCxt </td>
|
|
956
956
|
<td>(</td>
|
|
957
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#
|
|
957
|
+
<td class="paramtype">const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> </td>
|
|
958
958
|
<td class="paramname"><em>cxt1</em>, </td>
|
|
959
959
|
</tr>
|
|
960
960
|
<tr>
|
|
961
961
|
<td class="paramkey"></td>
|
|
962
962
|
<td></td>
|
|
963
|
-
<td class="paramtype">const <a class="el" href="namespaceSVF.html#
|
|
963
|
+
<td class="paramtype">const <a class="el" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> </td>
|
|
964
964
|
<td class="paramname"><em>cxt2</em> </td>
|
|
965
965
|
</tr>
|
|
966
966
|
<tr>
|
|
@@ -976,8 +976,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
976
976
|
</table>
|
|
977
977
|
</div><div class="memdoc">
|
|
978
978
|
|
|
979
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
980
|
-
<div class="fragment"><div class="line"><a name="
|
|
979
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00152">152</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
980
|
+
<div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span> (cxt1.size() != cxt2.size())</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span> std::equal(cxt1.begin(), cxt1.end(), cxt2.begin());</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> }</div></div><!-- fragment -->
|
|
981
981
|
</div>
|
|
982
982
|
</div>
|
|
983
983
|
<a id="a73db9ad234b263b6e644e4b38be14fe6"></a>
|
|
@@ -1020,8 +1020,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
1020
1020
|
</table>
|
|
1021
1021
|
</div><div class="memdoc">
|
|
1022
1022
|
|
|
1023
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
1024
|
-
<div class="fragment"><div class="line"><a name="
|
|
1023
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00042">42</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1024
|
+
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  std::stringstream ss(s);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  std::string item;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keywordflow">while</span> (std::getline(ss, item, delim))</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  elems.push_back(item);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> elems;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> }</div></div><!-- fragment -->
|
|
1025
1025
|
</div>
|
|
1026
1026
|
</div>
|
|
1027
1027
|
<a id="a7dad63ce2a85142a56d13926f10fde47"></a>
|
|
@@ -1058,8 +1058,8 @@ Static Private Attributes</h2></td></tr>
|
|
|
1058
1058
|
</table>
|
|
1059
1059
|
</div><div class="memdoc">
|
|
1060
1060
|
|
|
1061
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
1062
|
-
<div class="fragment"><div class="line"><a name="
|
|
1061
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00053">53</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1062
|
+
<div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  std::vector<std::string> elems;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(s, delim, elems);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> elems;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div><div class="ttc" id="classSVF_1_1MTAResultValidator_html_a73db9ad234b263b6e644e4b38be14fe6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator::split</a></div><div class="ttdeci">std::vector< std::string > & split(const std::string &s, char delim, std::vector< std::string > &elems)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00042">MTAResultValidator.cpp:42</a></div></div>
|
|
1063
1063
|
</div><!-- fragment -->
|
|
1064
1064
|
</div>
|
|
1065
1065
|
</div>
|
|
@@ -1086,19 +1086,19 @@ Static Private Attributes</h2></td></tr>
|
|
|
1086
1086
|
</table>
|
|
1087
1087
|
</div><div class="memdoc">
|
|
1088
1088
|
|
|
1089
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
1090
|
-
<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</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="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<int></a> visitedvthd;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</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="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) != visitedvthd.end())</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid] = i;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] = vthdid;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  visitedvthd.insert(vthdid);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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="l00374"></a><span class="lineno"> 374</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</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>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</span>  {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</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="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) == visitedvthd.end())</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</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="l00392"></a><span class="lineno"> 392</span>  }</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>  }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</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#l00151">MTAResultValidator.cpp:151</a></div></div>
|
|
1089
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00325">325</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1090
|
+
<div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</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="l00331"></a><span class="lineno"> 331</span>  {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<int></a> visitedvthd;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"> 346</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) != visitedvthd.end())</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"> 358</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</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="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>[vthdid] = i;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>[i] = vthdid;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  visitedvthd.insert(vthdid);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</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="l00375"></a><span class="lineno"> 375</span>  rthd.<a class="code" href="classSVF_1_1CxtThread.html#a66709acfa2f5762d86574c9cf7f38a64">dump</a>();</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</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>  <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="l00381"></a><span class="lineno"> 381</span>  {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"test case failed!"</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</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="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vthdid = (*j).first;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> (visitedvthd.find(vthdid) == visitedvthd.end())</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</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="l00393"></a><span class="lineno"> 393</span>  }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</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">return</span> res;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</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#l00152">MTAResultValidator.cpp:152</a></div></div>
|
|
1091
1091
|
<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>
|
|
1092
1092
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1093
|
-
<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#
|
|
1093
|
+
<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#l00159">MTAResultValidator.cpp:159</a></div></div>
|
|
1094
1094
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
1095
1095
|
<div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
|
|
1096
1096
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7382b2759b01b8382c5e59b21e7e262a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">SVF::MTAResultValidator::vthdTorthd</a></div><div class="ttdeci">vthdTorthdMap vthdTorthd</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00136">MTAResultValidator.h:136</a></div></div>
|
|
1097
1097
|
<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#l00217">TCT.h:217</a></div></div>
|
|
1098
|
-
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1098
|
+
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00106">SVFBasicTypes.h:106</a></div></div>
|
|
1099
1099
|
<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#l00174">TCT.h:174</a></div></div>
|
|
1100
1100
|
<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#l00082">TCT.h:82</a></div></div>
|
|
1101
|
-
<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="SVFBasicTypes_8h_source.html#
|
|
1101
|
+
<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="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
|
|
1102
1102
|
<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="MTAResultValidator_8h_source.html#l00135">MTAResultValidator.h:135</a></div></div>
|
|
1103
1103
|
<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#l00183">Options.h:183</a></div></div>
|
|
1104
1104
|
<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="MTAResultValidator_8h_source.html#l00137">MTAResultValidator.h:137</a></div></div>
|
|
@@ -1135,13 +1135,13 @@ Static Private Attributes</h2></td></tr>
|
|
|
1135
1135
|
</table>
|
|
1136
1136
|
</div><div class="memdoc">
|
|
1137
1137
|
|
|
1138
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
1139
|
-
<div class="fragment"><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>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">MTAResultValidator::INTERLEV_FLAG</a> res = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b">MTAResultValidator::INTERLEV_TRUE</a>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</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="l00455"></a><span class="lineno"> 455</span>  {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*seti).first;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</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#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a49504524c0d3e53c769cdbfd9ec1ccb0">getThreadStmtSet</a>(inst);</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>  <span class="keywordflow">if</span> ((*seti).second.size() != tsSet.size())</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</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="l00466"></a><span class="lineno"> 466</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="l00467"></a><span class="lineno"> 467</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="l00468"></a><span class="lineno"> 468</span>  ++thdlevi)</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>  <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="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*thdlevi).getContext());</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>  <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="l00474"></a><span class="lineno"> 474</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="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>() << <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="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*it).getContext());</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</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> </div><div class="line"><a name="l00484"></a><span class="lineno"> 484</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="l00485"></a><span class="lineno"> 485</span>  {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts = *it;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</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="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts2 = *it2;</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>  <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="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev2 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>[ts2];</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordflow">if</span> (lev != lev2)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</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="l00503"></a><span class="lineno"> 503</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="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev2);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">MTAResultValidator::INTERLEV_IMPRECISE</a> > res)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">MTAResultValidator::INTERLEV_IMPRECISE</a>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">if</span> (lev.count() >= lev2.count())</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordtype">bool</span> findeveryelement = <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">for</span> (NodeBS::iterator it = lev2.begin(), eit = lev2.end(); it != eit; it++)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (!lev.test(*it))</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  findeveryelement = <span class="keyword">false</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">if</span> (!findeveryelement)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</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>  }</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> </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">if</span> (!matched)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</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="l00539"></a><span class="lineno"> 539</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="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div><div class="line"><a name="l00542"></a><span class="lineno"> 542</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="l00543"></a><span class="lineno"> 543</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</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>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</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>  }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</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#l00151">MTAResultValidator.cpp:151</a></div></div>
|
|
1140
|
-
<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#
|
|
1138
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00451">451</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1139
|
+
<div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">MTAResultValidator::INTERLEV_FLAG</a> res = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b">MTAResultValidator::INTERLEV_TRUE</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</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="l00456"></a><span class="lineno"> 456</span>  {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = (*seti).first;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</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#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a49504524c0d3e53c769cdbfd9ec1ccb0">getThreadStmtSet</a>(inst);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">if</span> ((*seti).second.size() != tsSet.size())</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</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="l00467"></a><span class="lineno"> 467</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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>  ++thdlevi)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</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="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*thdlevi).getContext());</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>  <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="l00475"></a><span class="lineno"> 475</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="l00476"></a><span class="lineno"> 476</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">"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="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>((*it).getContext());</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_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</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="l00486"></a><span class="lineno"> 486</span>  {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts = *it;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordtype">bool</span> matched = <span class="keyword">false</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</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="l00490"></a><span class="lineno"> 490</span>  {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThreadStmt.html">CxtThreadStmt</a>& ts2 = *it2;</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">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="l00494"></a><span class="lineno"> 494</span>  {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  matched = <span class="keyword">true</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a653460ed316804bea377eecdde412d36">getInterleavingThreads</a>(ts);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev2 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>[ts2];</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">if</span> (lev != lev2)</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">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</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="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev2);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</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="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</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> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">MTAResultValidator::INTERLEV_IMPRECISE</a> > res)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">MTAResultValidator::INTERLEV_IMPRECISE</a>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">if</span> (lev.count() >= lev2.count())</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>  <span class="keywordtype">bool</span> findeveryelement = <span class="keyword">true</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">for</span> (NodeBS::iterator it = lev2.begin(), eit = lev2.end(); it != eit; it++)</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>  <span class="keywordflow">if</span> (!lev.test(*it))</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  findeveryelement = <span class="keyword">false</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  }</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>  <span class="keywordflow">if</span> (!findeveryelement)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</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>  }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">if</span> (!matched)</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="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac609142ee5a0caaf3ac51238ec421c2e">Options::PrintValidRes</a>)</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>  <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>) << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(inst) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</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="l00540"></a><span class="lineno"> 540</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="l00541"></a><span class="lineno"> 541</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> lev = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">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> </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</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="l00544"></a><span class="lineno"> 544</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(lev);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  res = <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">MTAResultValidator::INTERLEV_UNSOUND</a>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</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#l00152">MTAResultValidator.cpp:152</a></div></div>
|
|
1140
|
+
<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#l00159">MTAResultValidator.cpp:159</a></div></div>
|
|
1141
1141
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
1142
1142
|
<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>
|
|
1143
1143
|
<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="MTAResultValidator_8h_source.html#l00126">MTAResultValidator.h:126</a></div></div>
|
|
1144
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
1144
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
1145
1145
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1c34f6a65688a3261ec27a35e9b9601b"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">SVF::MTAResultValidator::INTERLEV_UNSOUND</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_UNSOUND</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00145">MTAResultValidator.h:145</a></div></div>
|
|
1146
1146
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a3f3cc6bcc79e4125ef9a49857442319d"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">SVF::MTAResultValidator::INTERLEV_IMPRECISE</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_IMPRECISE</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00144">MTAResultValidator.h:144</a></div></div>
|
|
1147
1147
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ac76235240be9684bc71fd924ed83b05b"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b">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="MTAResultValidator_8h_source.html#l00143">MTAResultValidator.h:143</a></div></div>
|
|
@@ -1150,10 +1150,10 @@ Static Private Attributes</h2></td></tr>
|
|
|
1150
1150
|
<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>
|
|
1151
1151
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a8e26b7fe85478eef7b3d0551ab59d9c7"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">SVF::MTAResultValidator::INTERLEV_FLAG</a></div><div class="ttdeci">int INTERLEV_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00024">MTAResultValidator.h:24</a></div></div>
|
|
1152
1152
|
<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="MTAResultValidator_8h_source.html#l00125">MTAResultValidator.h:125</a></div></div>
|
|
1153
|
-
<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#
|
|
1153
|
+
<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#l00174">MTAResultValidator.cpp:174</a></div></div>
|
|
1154
1154
|
<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#l00090">MHP.h:90</a></div></div>
|
|
1155
1155
|
<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>
|
|
1156
|
-
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
1156
|
+
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
|
|
1157
1157
|
<div class="ttc" id="classSVF_1_1MHP_html_a28031502c4f8f0d4012c0827c57efb32"><div class="ttname"><a href="classSVF_1_1MHP.html#a28031502c4f8f0d4012c0827c57efb32">SVF::MHP::CxtThreadStmtSet</a></div><div class="ttdeci">Set< CxtThreadStmt > CxtThreadStmtSet</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00031">MHP.h:31</a></div></div>
|
|
1158
1158
|
<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#l00078">SVFUtil.cpp:78</a></div></div>
|
|
1159
1159
|
<div class="ttc" id="classSVF_1_1CxtThreadStmt_html"><div class="ttname"><a href="classSVF_1_1CxtThreadStmt.html">SVF::CxtThreadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00123">CxtStmt.h:123</a></div></div>
|
|
@@ -1185,14 +1185,14 @@ Static Private Attributes</h2></td></tr>
|
|
|
1185
1185
|
</table>
|
|
1186
1186
|
</div><div class="memdoc">
|
|
1187
1187
|
|
|
1188
|
-
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#
|
|
1189
|
-
<div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</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>  <span class="keywordtype">bool</span> res_node = <span class="keyword">true</span>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</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="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>  ci++)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>  {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</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>  <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="l00420"></a><span class="lineno"> 420</span>  {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gid = *j;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</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="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  res_node = <span class="keyword">false</span>;</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>  }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</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="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#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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</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="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#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gid = *j;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</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="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</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="l00438"></a><span class="lineno"> 438</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="l00439"></a><span class="lineno"> 439</span>  ci++)</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</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="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  }</div><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="keywordflow">return</span> res;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1188
|
+
<p class="definition">Definition at line <a class="el" href="MTAResultValidator_8cpp_source.html#l00400">400</a> of file <a class="el" href="MTAResultValidator_8cpp_source.html">MTAResultValidator.cpp</a>.</p>
|
|
1189
|
+
<div class="fragment"><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>  <span class="keywordtype">bool</span> res = <span class="keyword">true</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="classSVF_1_1TCT.html">TCT</a>* tct = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>();</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i = 0; i < tct-><a class="code" href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">getTCTNodeNum</a>(); i++)</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>  <span class="keywordtype">bool</span> res_node = <span class="keyword">true</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</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="l00410"></a><span class="lineno"> 410</span>  ci++)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</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="l00414"></a><span class="lineno"> 414</span>  {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</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> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</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="l00421"></a><span class="lineno"> 421</span>  {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gid = *j;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</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="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  res = <span class="keyword">false</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  res_node = <span class="keyword">false</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</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="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</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="l00433"></a><span class="lineno"> 433</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="l00434"></a><span class="lineno"> 434</span>  {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gid = *j;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</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="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</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="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>  ci++)</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tid = (*ci)->getDstID();</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</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="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <span class="stringliteral">"\n"</span>;</div><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>  }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
1190
1190
|
<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#l00185">TCT.h:185</a></div></div>
|
|
1191
1191
|
<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#l00565">TCT.cpp:565</a></div></div>
|
|
1192
1192
|
<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#l00217">TCT.h:217</a></div></div>
|
|
1193
1193
|
<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#l00066">TCT.h:66</a></div></div>
|
|
1194
1194
|
<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#l00174">TCT.h:174</a></div></div>
|
|
1195
|
-
<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="SVFBasicTypes_8h_source.html#
|
|
1195
|
+
<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="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
|
|
1196
1196
|
<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#l00183">Options.h:183</a></div></div>
|
|
1197
1197
|
<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#l00189">TCT.h:189</a></div></div>
|
|
1198
1198
|
<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="MTAResultValidator_8h_source.html#l00137">MTAResultValidator.h:137</a></div></div>
|