svf-tools 1.0.424 → 1.0.427
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 +3 -3
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +4 -4
- 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 +7 -7
- 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 +32 -32
- package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -0
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +56 -55
- 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 +5 -5
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +14 -14
- 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 +7 -7
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +3 -3
- 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_1CoreBitVector_1_1CoreBitVectorIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html +6 -6
- 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-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +9 -9
- 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.html +174 -174
- 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_1PointsTo_1_1PointsToIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +25 -25
- 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.html +10 -10
- 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 +4 -4
- 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_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +7 -7
- package/SVF-doxygen/html/html/functions_func_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +9 -12
- package/SVF-doxygen/html/html/functions_func_o.html +3 -4
- package/SVF-doxygen/html/html/functions_g.html +13 -16
- 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 +13 -12
- 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 +3 -3
- 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_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 +3 -3
- package/SVF-doxygen/html/html/search/classes_7.js +0 -1
- package/SVF-doxygen/html/html/search/functions_0.js +1 -1
- 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_6.js +2 -2
- package/SVF-doxygen/html/html/search/functions_d.js +2 -2
- 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/ICFGEdge.h +1 -1
- package/include/Graphs/VFGNode.h +4 -18
- package/include/MemoryModel/PointerAnalysis.h +0 -4
- package/include/MemoryModel/PointerAnalysisImpl.h +0 -10
- package/include/MemoryModel/PointsTo.h +1 -1
- package/include/MemoryModel/SVFVariables.h +4 -4
- package/include/MemoryModel/SymbolTableInfo.h +0 -11
- package/include/SABER/PathCondAllocator.h +1 -0
- 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/CoreBitVector.h +1 -1
- 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/PointsTo.cpp +2 -2
- package/lib/MemoryModel/SVFVariables.cpp +2 -2
- package/lib/MemoryModel/SymbolTableInfo.cpp +0 -5
- package/lib/SABER/PathCondAllocator.cpp +1 -1
- 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/CoreBitVector.cpp +1 -1
- package/lib/Util/PTAStat.cpp +3 -1
- package/package.json +1 -1
|
@@ -66,14 +66,13 @@ $(function() {
|
|
|
66
66
|
<div class="title">PointsTo.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="PointsTo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- PointsTo.cpp -- Wrapper of set-like data structures ------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * PointsTo.cpp</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Abstracts away data structures to be used as points-to sets (implementation).</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Created on: Feb 01, 2021</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> */</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <new></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div><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> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">PointsTo::currentBestNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">PointsTo::currentBestReverseNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22"> 24</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  : type(<a class="code" href="classSVF_1_1Options.html">Options</a>::PtType), nodeMapping(currentBestNodeMapping),</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  reverseNodeMapping(currentBestReverseNodeMapping)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo: unknown type"</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#acef2d3e41263aef641c3411e28ad445c"> 34</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pt)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  : <a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>), <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>),</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo&: unknown type"</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a5ecef616428a70e8e7726406dfb43544"> 44</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &&pt)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  : <a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>), <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>),</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(std::move(pt.sbv));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(std::move(pt.cbv));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(std::move(pt.bv));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo&&: unknown type"</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a2a12ab349a01314b0d7b4074a0c28677"> 54</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a2a12ab349a01314b0d7b4074a0c28677">PointsTo::~PointsTo</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.~SparseBitVector();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.~CoreBitVector();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.~BitVector();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::~PointsTo: unknown type"</span>);</div><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="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7"> 65</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &<a class="code" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">PointsTo::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Placement new because if type has changed, we have</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// not constructed the new type yet.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo=&: unknown type"</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ab06c71c3d1ab7ef2a67fc00b42f4be72"> 80</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &<a class="code" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">PointsTo::operator=</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &&rhs)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> = rhs.type;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = rhs.nodeMapping;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = rhs.reverseNodeMapping;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// See comment in copy assignment.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(std::move(rhs.sbv));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(std::move(rhs.cbv));</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(std::move(rhs.bv));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo=&&: unknown type"</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b"> 94</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">PointsTo::empty</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword"></span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a98b9795b4fdc74d9d2efa9a3f2ecb62f">empty</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.empty();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a98b9795b4fdc74d9d2efa9a3f2ecb62f">empty</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::empty: unknown type"</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</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> </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d"> 106</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">PointsTo::count</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword"></span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#abfed2e7daf2407e11cade625ac19a6ce">count</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.count();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#abfed2e7daf2407e11cade625ac19a6ce">count</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::count: unknown type"</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</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> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#acb5af4139d42dcd19c6327520f074e91"> 117</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#acb5af4139d42dcd19c6327520f074e91">PointsTo::clear</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a1e523bab1013a9f3e9eaea56e53afa58">clear</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.clear();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a1e523bab1013a9f3e9eaea56e53afa58">clear</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::clear: unknown type"</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> </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f"> 125</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">PointsTo::test</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword"></span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a7b20ffd3cd4a0ffc48a1348f657deaa0">test</a>(n);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.test(n);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a7b20ffd3cd4a0ffc48a1348f657deaa0">test</a>(n);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::test: unknown type"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf"> 137</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">PointsTo::test_and_set</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a3299b296d20d2b76c6538ba51a684972">test_and_set</a>(n);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.test_and_set(n);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a3299b296d20d2b76c6538ba51a684972">test_and_set</a>(n);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::test_and_set: unknown type"</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</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"><a class="line" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa"> 149</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">PointsTo::set</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24">set</a>(n);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.set(n);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24">set</a>(n);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::set: unknown type"</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a1ef805e714cfc29f0f3fa56c5ee964f6"> 158</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#a1ef805e714cfc29f0f3fa56c5ee964f6">PointsTo::reset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a42fc777d574db4ef23b02308b944a85b">reset</a>(n);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.reset(n);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a42fc777d574db4ef23b02308b944a85b">reset</a>(n);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::reset: unknown type"</span>);</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> </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ab31a53693fe070767b8de74e88091cd8"> 167</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ab31a53693fe070767b8de74e88091cd8">PointsTo::contains</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword"></span>{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::contains: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af08c16aed45dfa65472f0b5ae518add2">contains</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.contains(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af08c16aed45dfa65472f0b5ae518add2">contains</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::contains: unknown type"</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</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> </div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d"> 180</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d">PointsTo::intersects</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword"></span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersects: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a15be4ce7e9a07d9b01da0c60d51b22de">intersects</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersects(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a15be4ce7e9a07d9b01da0c60d51b22de">intersects</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersects: unknown type"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a12883234179873d279e72e5947aad836"> 193</a></span> <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1PointsTo.html#a12883234179873d279e72e5947aad836">PointsTo::find_first</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() == 0) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>();</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> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a6b29626e4e4298943d2ad839f06db83e"> 199</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a6b29626e4e4298943d2ad839f06db83e">PointsTo::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword"></span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::==: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::==: unknown type"</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75"> 212</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75">PointsTo::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword"></span>{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// TODO: we're asserting and checking twice... should be okay...</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::!=: mappings of operands do not match!"</span>);</div><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="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade"> 220</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade">PointsTo::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::|=: mappings of operands do not match!"</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::|=: unknown type"</span>);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</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> </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a687b34cac3c43dd957b86a4833a24871"> 233</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade">PointsTo::operator|=</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &rhs)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// TODO:</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n : rhs)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (changed) <span class="keyword">set</span>(n);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">else</span> changed = <a class="code" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">test_and_set</a>(n);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</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>  <span class="keywordflow">return</span> changed;</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> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a164aced0d6a19dd7ba8124ec2e77674c">PointsTo::operator&=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::&=: mappings of operands do not match!"</span>);</div><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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::&=: unknown type"</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</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"><a class="line" href="classSVF_1_1PointsTo.html#a21244b7b04d6aa01787a11d116bc9952"> 259</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a21244b7b04d6aa01787a11d116bc9952">PointsTo::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::-=: mappings of operands do not match!"</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">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::-=: unknown type"</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd"> 272</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd">PointsTo::intersectWithComplement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersectWithComplement(PT): unknown type"</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><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"><a class="line" href="classSVF_1_1PointsTo.html#adec2e2fc87c2bb9b3ff8873b04abf31d"> 284</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd">PointsTo::intersectWithComplement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(lhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(lhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(lhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(lhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersectWithComplement(PT, PT): unknown type"</span>);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637"> 298</a></span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">PointsTo::toNodeBS</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword"></span>{</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> nbs;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : *<span class="keyword">this</span>) nbs.set(o);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#afe275b31ea93a3ecea4e19660ceef0ae"> 305</a></span> <span class="keywordtype">size_t</span> <a class="code" href="classSVF_1_1PointsTo.html#afe275b31ea93a3ecea4e19660ceef0ae">PointsTo::hash</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword"></span>{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af979ecb48d3d5296bce5bd0b4676e359">hash</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  std::hash<SparseBitVector> h;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> h(<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af979ecb48d3d5296bce5bd0b4676e359">hash</a>();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::hash: unknown type"</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a06b981a2b7b04549f494dffde974c56d"> 321</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a06b981a2b7b04549f494dffde974c56d">PointsTo::getNodeMapping</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword"></span>{</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863"> 326</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">PointsTo::getInternalNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keyword"></span>{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(n < nodeMapping->size());</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>->at(n);</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> </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626"> 333</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">PointsTo::getExternalNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword"></span>{</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(n < reverseNodeMapping->size());</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>->at(n);</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"><a class="line" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec"> 340</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">PointsTo::metaSame</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pt)<span class="keyword"> const</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword"></span>{</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> == pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> && <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> == pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>;</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> </div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a6c1885ddfcc72604463f7c4ea94d2f74"> 345</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a6c1885ddfcc72604463f7c4ea94d2f74">PointsTo::getCurrentBestNodeMapping</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a>;</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> </div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a40759008e0cf6f790d48727f7b0ca38b"> 350</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a40759008e0cf6f790d48727f7b0ca38b">PointsTo::getCurrentBestReverseNodeMapping</a>(<span class="keywordtype">void</span>)</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">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">currentBestReverseNodeMapping</a>;</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> </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8"> 355</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">PointsTo::setCurrentBestNodeMapping</a>(<a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">MappingPtr</a> newCurrentBestNodeMapping,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">MappingPtr</a> newCurrentBestReverseNodeMapping)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a> = newCurrentBestNodeMapping;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">currentBestReverseNodeMapping</a> = newCurrentBestReverseNodeMapping;</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"><a class="line" href="classSVF_1_1PointsTo.html#ac630a1bfa028240f9128e3b60d9413a4"> 362</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#ac630a1bfa028240f9128e3b60d9413a4">PointsTo::checkAndRemap</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> != <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// newPt constructed with correct node mapping.</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> newPt;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : *<span class="keyword">this</span>) newPt.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(o);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  *<span class="keyword">this</span> = std::move(newPt);</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> }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ad9efcd9fb0c8201b9166a1560d06a71b"> 373</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> *pt, <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  : pt(pt)</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>() : pt-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">begin</a>());</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.end() : pt-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.begin());</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>() : pt-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">begin</a>());</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">else</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator: unknown type"</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a19f371ccb5b1c84fb4adfd5b0c8a3eec"> 395</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  : pt(pt.pt)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::SBV)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::CBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::BV)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&: unknown type"</span>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#abe128c47fb16093756195f789e5f68d5"> 416</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  : <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.sbvIt));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.cbvIt));</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</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="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.bvIt));</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>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&&: unknown type"</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21"> 437</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">PointsTo::PointsToIterator::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> = rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>;</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>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</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="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><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>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&: unknown type"</span>);</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">return</span> *<span class="keyword">this</span>;</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> </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac35de79e5c5d48d7f8f6f22e8450a0f6"> 458</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">PointsTo::PointsToIterator::operator=</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &&rhs)</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>  this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> = rhs.pt;</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> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(std::move(rhs.sbvIt));</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(std::move(rhs.cbvIt));</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(std::move(rhs.bvIt));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&&: unknown type"</span>);</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>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f"> 479</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f">PointsTo::PointsToIterator::operator++</a>(<span class="keywordtype">void</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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator::++(pre): incrementing past end!"</span>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::++(void): unknown type"</span>);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a94a195a13777028d5af16985e3fd5b73"> 490</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f">PointsTo::PointsToIterator::operator++</a>(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator::++(pre): incrementing past end!"</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> old = *<span class="keyword">this</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  ++*<span class="keyword">this</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> old;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ab294d3378c283fff63e481db1bea3b4d"> 498</a></span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ab294d3378c283fff63e481db1bea3b4d">PointsTo::PointsToIterator::operator*</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword"></span>{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator: dereferencing end!"</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::*: unknown type"</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aef4e1b40faa327f8bbf42a82df29c7b4"> 510</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aef4e1b40faa327f8bbf42a82df29c7b4">PointsTo::PointsToIterator::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword"></span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  && <span class="stringliteral">"PointsToIterator::==: comparing iterators from different PointsTos!"</span>);</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="comment">// Handles end implicitly.</span></div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::==: unknown type"</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> </div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970"> 525</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970">PointsTo::PointsToIterator::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="keyword"></span>{</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  && <span class="stringliteral">"PointsToIterator::!=: comparing iterators from different PointsTos!"</span>);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</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"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7"> 532</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">PointsTo::PointsToIterator::atEnd</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="keyword"></span>{</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> != <span class="keyword">nullptr</span> && <span class="stringliteral">"PointsToIterator::atEnd: iterator iterating over nothing!"</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_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>();</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.end();</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::atEnd: unknown type"</span>);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa01b96d5bc6c3930b0bfca789acf75c4"> 544</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#aa01b96d5bc6c3930b0bfca789acf75c4">operator|</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</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>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  result |= rhs;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aaa21ff095e66a18937f29246e213f69d"> 552</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#aaa21ff095e66a18937f29246e213f69d">operator&</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  result &= rhs;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a6c2f7ce4908d39a17b29830a2e4bd781"> 560</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#a6c2f7ce4908d39a17b29830a2e4bd781">operator-</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  result -= rhs;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> }; <span class="comment">// namespace SVF</span></div><div class="ttc" id="classSVF_1_1PointsTo_html_a1161d97df5ffc8f11d1a34df9a4d5bdf"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">SVF::PointsTo::test_and_set</a></div><div class="ttdeci">bool test_and_set(u32_t n)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00137">PointsTo.cpp:137</a></div></div>
|
|
69
|
+
<a href="PointsTo_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- PointsTo.cpp -- Wrapper of set-like data structures ------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * PointsTo.cpp</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Abstracts away data structures to be used as points-to sets (implementation).</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Created on: Feb 01, 2021</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> */</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include <new></span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> {</div><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> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">PointsTo::currentBestNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">PointsTo::currentBestReverseNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22"> 24</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  : type(<a class="code" href="classSVF_1_1Options.html">Options</a>::PtType), nodeMapping(currentBestNodeMapping),</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  reverseNodeMapping(currentBestReverseNodeMapping)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo: unknown type"</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#acef2d3e41263aef641c3411e28ad445c"> 34</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pt)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  : <a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>), <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>),</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo&: unknown type"</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a5ecef616428a70e8e7726406dfb43544"> 44</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">PointsTo::PointsTo</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &&pt)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  : <a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>), <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>),</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>(pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>)</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(std::move(pt.sbv));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(std::move(pt.cbv));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(std::move(pt.bv));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo&&: unknown type"</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a2a12ab349a01314b0d7b4074a0c28677"> 54</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a2a12ab349a01314b0d7b4074a0c28677">PointsTo::~PointsTo</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.~SparseBitVector();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.~CoreBitVector();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.~BitVector();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::~PointsTo: unknown type"</span>);</div><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="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7"> 65</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &<a class="code" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">PointsTo::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = rhs.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// Placement new because if type has changed, we have</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// not constructed the new type yet.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo=&: unknown type"</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ab06c71c3d1ab7ef2a67fc00b42f4be72"> 80</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &<a class="code" href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">PointsTo::operator=</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &&rhs)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> = rhs.type;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> = rhs.nodeMapping;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  this-><a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> = rhs.reverseNodeMapping;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// See comment in copy assignment.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>) <a class="code" href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SparseBitVector</a>(std::move(rhs.sbv));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>) <a class="code" href="classSVF_1_1CoreBitVector.html">CoreBitVector</a>(std::move(rhs.cbv));</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>) <a class="code" href="classSVF_1_1BitVector.html">BitVector</a>(std::move(rhs.bv));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::PointsTo=&&: unknown type"</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b"> 94</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">PointsTo::empty</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword"></span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a98b9795b4fdc74d9d2efa9a3f2ecb62f">empty</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.empty();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a98b9795b4fdc74d9d2efa9a3f2ecb62f">empty</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::empty: unknown type"</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</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> </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d"> 106</a></span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">PointsTo::count</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword"></span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#abfed2e7daf2407e11cade625ac19a6ce">count</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.count();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#abfed2e7daf2407e11cade625ac19a6ce">count</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::count: unknown type"</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</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> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#acb5af4139d42dcd19c6327520f074e91"> 117</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#acb5af4139d42dcd19c6327520f074e91">PointsTo::clear</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a1e523bab1013a9f3e9eaea56e53afa58">clear</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.clear();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a1e523bab1013a9f3e9eaea56e53afa58">clear</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::clear: unknown type"</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> </div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f"> 125</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">PointsTo::test</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword"></span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a7b20ffd3cd4a0ffc48a1348f657deaa0">test</a>(n);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.test(n);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a7b20ffd3cd4a0ffc48a1348f657deaa0">test</a>(n);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::test: unknown type"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf"> 137</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">PointsTo::test_and_set</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a3299b296d20d2b76c6538ba51a684972">test_and_set</a>(n);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.test_and_set(n);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a3299b296d20d2b76c6538ba51a684972">test_and_set</a>(n);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::test_and_set: unknown type"</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</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"><a class="line" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa"> 149</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">PointsTo::set</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24">set</a>(n);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.set(n);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24">set</a>(n);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::set: unknown type"</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a1ef805e714cfc29f0f3fa56c5ee964f6"> 158</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#a1ef805e714cfc29f0f3fa56c5ee964f6">PointsTo::reset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> n)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  n = <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">getInternalNode</a>(n);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a42fc777d574db4ef23b02308b944a85b">reset</a>(n);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.reset(n);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a42fc777d574db4ef23b02308b944a85b">reset</a>(n);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::reset: unknown type"</span>);</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> </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ab31a53693fe070767b8de74e88091cd8"> 167</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ab31a53693fe070767b8de74e88091cd8">PointsTo::contains</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword"></span>{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::contains: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af08c16aed45dfa65472f0b5ae518add2">contains</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.contains(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af08c16aed45dfa65472f0b5ae518add2">contains</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::contains: unknown type"</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</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> </div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d"> 180</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#ad78e4109c839914c4f7e37ca78046f1d">PointsTo::intersects</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword"></span>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersects: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a15be4ce7e9a07d9b01da0c60d51b22de">intersects</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersects(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a15be4ce7e9a07d9b01da0c60d51b22de">intersects</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersects: unknown type"</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a12883234179873d279e72e5947aad836"> 193</a></span> <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1PointsTo.html#a12883234179873d279e72e5947aad836">PointsTo::find_first</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() == 0) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> *<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>();</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> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a6b29626e4e4298943d2ad839f06db83e"> 199</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a6b29626e4e4298943d2ad839f06db83e">PointsTo::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword"></span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::==: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> == rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::==: unknown type"</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75"> 212</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75">PointsTo::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keyword"></span>{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// TODO: we're asserting and checking twice... should be okay...</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::!=: mappings of operands do not match!"</span>);</div><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="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade"> 220</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade">PointsTo::operator|=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::|=: mappings of operands do not match!"</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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> |= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::|=: unknown type"</span>);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</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> </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a687b34cac3c43dd957b86a4833a24871"> 233</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade">PointsTo::operator|=</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &rhs)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// TODO:</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n : rhs)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (changed) <span class="keyword">set</span>(n);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">else</span> changed = <a class="code" href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">test_and_set</a>(n);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</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>  <span class="keywordflow">return</span> changed;</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> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a164aced0d6a19dd7ba8124ec2e77674c">PointsTo::operator&=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::&=: mappings of operands do not match!"</span>);</div><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>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a> &= rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::&=: unknown type"</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</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"><a class="line" href="classSVF_1_1PointsTo.html#a21244b7b04d6aa01787a11d116bc9952"> 259</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a21244b7b04d6aa01787a11d116bc9952">PointsTo::operator-=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::-=: mappings of operands do not match!"</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">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::-=: unknown type"</span>);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd"> 272</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd">PointsTo::intersectWithComplement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersectWithComplement(PT): unknown type"</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><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"><a class="line" href="classSVF_1_1PointsTo.html#adec2e2fc87c2bb9b3ff8873b04abf31d"> 284</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd">PointsTo::intersectWithComplement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(rhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">metaSame</a>(lhs) && <span class="stringliteral">"PointsTo::intersectWithComplement: mappings of operands do not match!"</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(lhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>) <a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.intersectWithComplement(lhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a8ba857b68282055e485c441892e39b9b">intersectWithComplement</a>(lhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>, rhs.<a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::intersectWithComplement(PT, PT): unknown type"</span>);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637"> 298</a></span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">PointsTo::toNodeBS</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword"></span>{</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> nbs;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : *<span class="keyword">this</span>) nbs.set(o);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#afe275b31ea93a3ecea4e19660ceef0ae"> 305</a></span> <span class="keywordtype">size_t</span> <a class="code" href="classSVF_1_1PointsTo.html#afe275b31ea93a3ecea4e19660ceef0ae">PointsTo::hash</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword"></span>{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923ea0397c2678894d1792fcd3432a7aa64fb">CBV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af979ecb48d3d5296bce5bd0b4676e359">hash</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SBV</a>)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  std::hash<SparseBitVector> h;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> h(<a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == <a class="code" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">BV</a>) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#af979ecb48d3d5296bce5bd0b4676e359">hash</a>();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsTo::hash: unknown type"</span>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a06b981a2b7b04549f494dffde974c56d"> 321</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a06b981a2b7b04549f494dffde974c56d">PointsTo::getNodeMapping</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword"></span>{</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863"> 326</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo.html#aeda7466cdd9f77978981e2a518baa863">PointsTo::getInternalNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keyword"></span>{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(n < nodeMapping->size());</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a>->at(n);</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> </div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626"> 333</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">PointsTo::getExternalNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n)<span class="keyword"> const</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword"></span>{</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(n < reverseNodeMapping->size());</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>->at(n);</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"><a class="line" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec"> 340</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">PointsTo::metaSame</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pt)<span class="keyword"> const</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword"></span>{</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> == pt.<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> && <a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a> == pt.<a class="code" href="classSVF_1_1PointsTo.html#a1ae4abe690d21eb5aaf2154243b604c1">reverseNodeMapping</a>;</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> </div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a6c1885ddfcc72604463f7c4ea94d2f74"> 345</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a6c1885ddfcc72604463f7c4ea94d2f74">PointsTo::getCurrentBestNodeMapping</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a>;</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> </div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a40759008e0cf6f790d48727f7b0ca38b"> 350</a></span> <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> <a class="code" href="classSVF_1_1PointsTo.html#a40759008e0cf6f790d48727f7b0ca38b">PointsTo::getCurrentBestReverseNodeMapping</a>(<span class="keywordtype">void</span>)</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">return</span> <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">currentBestReverseNodeMapping</a>;</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> </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8"> 355</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">PointsTo::setCurrentBestNodeMapping</a>(<a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">MappingPtr</a> newCurrentBestNodeMapping,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">MappingPtr</a> newCurrentBestReverseNodeMapping)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a> = newCurrentBestNodeMapping;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">currentBestReverseNodeMapping</a> = newCurrentBestReverseNodeMapping;</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"><a class="line" href="classSVF_1_1PointsTo.html#ac630a1bfa028240f9128e3b60d9413a4"> 362</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PointsTo.html#ac630a1bfa028240f9128e3b60d9413a4">PointsTo::checkAndRemap</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo.html#acd7eab32125de90020c55c757d6adfda">nodeMapping</a> != <a class="code" href="classSVF_1_1PointsTo.html#a98781dd444ada40af7eef9aefe76123d">currentBestNodeMapping</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// newPt constructed with correct node mapping.</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> newPt;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : *<span class="keyword">this</span>) newPt.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(o);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  *<span class="keyword">this</span> = std::move(newPt);</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> }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ad9efcd9fb0c8201b9166a1560d06a71b"> 373</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> *pt, <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  : pt(pt)</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>() : pt-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">begin</a>());</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.end() : pt-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.begin());</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pt-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(end ? pt-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>() : pt-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">begin</a>());</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator: unknown type"</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a19f371ccb5b1c84fb4adfd5b0c8a3eec"> 395</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  : pt(pt.pt)</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::SBV)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::CBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this->pt->type == PointsTo::Type::BV)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(pt.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&: unknown type"</span>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#abe128c47fb16093756195f789e5f68d5"> 416</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a3974dee7680da3a43b58932766e77a16">PointsTo::PointsToIterator::PointsToIterator</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  : <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.sbvIt));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.cbvIt));</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</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="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(std::move(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>.bvIt));</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>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&&: unknown type"</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21"> 437</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">PointsTo::PointsToIterator::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> = rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>;</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>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</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="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><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>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&: unknown type"</span>);</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">return</span> *<span class="keyword">this</span>;</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> </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac35de79e5c5d48d7f8f6f22e8450a0f6"> 458</a></span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">PointsTo::PointsToIterator::operator=</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &&rhs)</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>  this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> = rhs.pt;</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> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::SBV)</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>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>) SparseBitVector::iterator(std::move(rhs.sbvIt));</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::CBV)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">CoreBitVector::iterator</a>(std::move(rhs.cbvIt));</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == PointsTo::Type::BV)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">new</span> (&<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>) <a class="code" href="classSVF_1_1CoreBitVector_1_1CoreBitVectorIterator.html">BitVector::iterator</a>(std::move(rhs.bvIt));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::PointsToIterator&&: unknown type"</span>);</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>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f"> 479</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> &<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f">PointsTo::PointsToIterator::operator++</a>(<span class="keywordtype">void</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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator::++(pre): incrementing past end!"</span>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) ++<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">else</span> <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::++(void): unknown type"</span>);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a94a195a13777028d5af16985e3fd5b73"> 490</a></span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::PointsToIterator</a> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a754d85d463ebdbecfaab41aac106f14f">PointsTo::PointsToIterator::operator++</a>(<span class="keywordtype">int</span>)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator::++(pre): incrementing past end!"</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> old = *<span class="keyword">this</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  ++*<span class="keyword">this</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> old;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a06c8e8c242c5de90c307665f589e3180"> 498</a></span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a06c8e8c242c5de90c307665f589e3180">PointsTo::PointsToIterator::operator*</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="keyword"></span>{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">atEnd</a>() && <span class="stringliteral">"PointsToIterator: dereferencing end!"</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a80a3caf74c138b3833c79622fef7b626">getExternalNode</a>(*<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::*: unknown type"</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aef4e1b40faa327f8bbf42a82df29c7b4"> 510</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aef4e1b40faa327f8bbf42a82df29c7b4">PointsTo::PointsToIterator::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="keyword"></span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  && <span class="stringliteral">"PointsToIterator::==: comparing iterators from different PointsTos!"</span>);</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="comment">// Handles end implicitly.</span></div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::==: unknown type"</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> </div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970"> 525</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970">PointsTo::PointsToIterator::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsToIterator</a> &rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="keyword"></span>{</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> == rhs.<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  && <span class="stringliteral">"PointsToIterator::!=: comparing iterators from different PointsTos!"</span>);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</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"><a class="line" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7"> 532</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a049cecdc3aa76a31eacdbe48f6a820e7">PointsTo::PointsToIterator::atEnd</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> <span class="keyword"></span>{</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a> != <span class="keyword">nullptr</span> && <span class="stringliteral">"PointsToIterator::atEnd: iterator iterating over nothing!"</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_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::CBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a4db2c62eb3ad789ab7aaf7506cd340b2">cbvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">cbv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>();</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::SBV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ac13245e140ab7c488c776b8dd97facf4">sbvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">sbv</a>.end();</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#aaa9c956187f2c04a7a242ce440d1416f">type</a> == Type::BV) <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa420a44769d1c25e083975e3cd04d699">bvIt</a> == <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a8be3dd8b1e66eac8577bf16b7403c9c5">pt</a>-><a class="code" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">bv</a>.<a class="code" href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">end</a>();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"PointsToIterator::atEnd: unknown type"</span>);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</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> }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aa01b96d5bc6c3930b0bfca789acf75c4"> 544</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#aa01b96d5bc6c3930b0bfca789acf75c4">operator|</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</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>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  result |= rhs;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> </div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aaa21ff095e66a18937f29246e213f69d"> 552</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#aaa21ff095e66a18937f29246e213f69d">operator&</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  result &= rhs;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a6c2f7ce4908d39a17b29830a2e4bd781"> 560</a></span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="namespaceSVF.html#a6c2f7ce4908d39a17b29830a2e4bd781">operator-</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &rhs)</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="comment">// TODO: optimise.</span></div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = lhs;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  result -= rhs;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> }; <span class="comment">// namespace SVF</span></div><div class="ttc" id="classSVF_1_1PointsTo_html_a1161d97df5ffc8f11d1a34df9a4d5bdf"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a1161d97df5ffc8f11d1a34df9a4d5bdf">SVF::PointsTo::test_and_set</a></div><div class="ttdeci">bool test_and_set(u32_t n)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00137">PointsTo.cpp:137</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ae4749cf6dc43645e2479cefbcc246637"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ae4749cf6dc43645e2479cefbcc246637">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS(void) const</div><div class="ttdoc">Returns this points-to set as a NodeBS. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00298">PointsTo.cpp:298</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eacccb6e19f3e8db5f5b5b8858b22da61a">SVF::PointsTo::SBV</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00032">PointsTo.h:32</a></div></div>
|
|
72
|
-
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_ab294d3378c283fff63e481db1bea3b4d"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#ab294d3378c283fff63e481db1bea3b4d">SVF::PointsTo::PointsToIterator::operator*</a></div><div class="ttdeci">const u32_t operator*(void) const</div><div class="ttdoc">Dereference: *it. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00498">PointsTo.cpp:498</a></div></div>
|
|
73
72
|
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_aef4e1b40faa327f8bbf42a82df29c7b4"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aef4e1b40faa327f8bbf42a82df29c7b4">SVF::PointsTo::PointsToIterator::operator==</a></div><div class="ttdeci">bool operator==(const PointsToIterator &rhs) const</div><div class="ttdoc">Equality: *this == rhs. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00510">PointsTo.cpp:510</a></div></div>
|
|
74
73
|
<div class="ttc" id="classSVF_1_1CoreBitVector_html_a42fc777d574db4ef23b02308b944a85b"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#a42fc777d574db4ef23b02308b944a85b">SVF::CoreBitVector::reset</a></div><div class="ttdeci">void reset(u32_t bit)</div><div class="ttdoc">Resets bit in the CBV. </div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00095">CoreBitVector.cpp:95</a></div></div>
|
|
75
74
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a06b981a2b7b04549f494dffde974c56d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a06b981a2b7b04549f494dffde974c56d">SVF::PointsTo::getNodeMapping</a></div><div class="ttdeci">MappingPtr getNodeMapping(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00321">PointsTo.cpp:321</a></div></div>
|
|
76
|
-
<div class="ttc" id="namespaceSVF_html_ab6cf2115b54ef7135b031efc2f112b54"><div class="ttname"><a href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SVF::SparseBitVector</a></div><div class="ttdeci">llvm::SparseBitVector SparseBitVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
75
|
+
<div class="ttc" id="namespaceSVF_html_ab6cf2115b54ef7135b031efc2f112b54"><div class="ttname"><a href="namespaceSVF.html#ab6cf2115b54ef7135b031efc2f112b54">SVF::SparseBitVector</a></div><div class="ttdeci">llvm::SparseBitVector SparseBitVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00093">SVFBasicTypes.h:93</a></div></div>
|
|
77
76
|
<div class="ttc" id="classSVF_1_1PointsTo_html_aecd6b98c0687de59aebb297ec38a7084"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aecd6b98c0687de59aebb297ec38a7084">SVF::PointsTo::sbv</a></div><div class="ttdeci">SparseBitVector sbv</div><div class="ttdoc">Sparse bit vector backing. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00159">PointsTo.h:159</a></div></div>
|
|
78
77
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a12883234179873d279e72e5947aad836"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a12883234179873d279e72e5947aad836">SVF::PointsTo::find_first</a></div><div class="ttdeci">int find_first(void)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00193">PointsTo.cpp:193</a></div></div>
|
|
79
78
|
<div class="ttc" id="classSVF_1_1PointsTo_html_af81f9e91eec4bf82ccfb867c2415f9bd"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af81f9e91eec4bf82ccfb867c2415f9bd">SVF::PointsTo::intersectWithComplement</a></div><div class="ttdeci">bool intersectWithComplement(const PointsTo &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00272">PointsTo.cpp:272</a></div></div>
|
|
@@ -93,7 +92,7 @@ $(function() {
|
|
|
93
92
|
<div class="ttc" id="classSVF_1_1PointsTo_html_ac630a1bfa028240f9128e3b60d9413a4"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ac630a1bfa028240f9128e3b60d9413a4">SVF::PointsTo::checkAndRemap</a></div><div class="ttdeci">void checkAndRemap(void)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00362">PointsTo.cpp:362</a></div></div>
|
|
94
93
|
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_aa90476b4c0e75a256f8ff855f99ca970"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#aa90476b4c0e75a256f8ff855f99ca970">SVF::PointsTo::PointsToIterator::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsToIterator &rhs) const</div><div class="ttdoc">Inequality: *this != rhs. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00525">PointsTo.cpp:525</a></div></div>
|
|
95
94
|
<div class="ttc" id="classSVF_1_1PointsTo_html_aa1e773b7abda97441d6ffe39c668d4ec"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa1e773b7abda97441d6ffe39c668d4ec">SVF::PointsTo::metaSame</a></div><div class="ttdeci">bool metaSame(const PointsTo &pt) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00340">PointsTo.cpp:340</a></div></div>
|
|
96
|
-
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
95
|
+
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
97
96
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a888f05fe8da4b95c44226f3c69469c75"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a888f05fe8da4b95c44226f3c69469c75">SVF::PointsTo::operator!=</a></div><div class="ttdeci">bool operator!=(const PointsTo &rhs) const</div><div class="ttdoc">Returns true if either this set or rhs has an element not in the other. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00212">PointsTo.cpp:212</a></div></div>
|
|
98
97
|
<div class="ttc" id="classSVF_1_1PointsTo_html_af61271fefa574c39f405fdfee59a8b3f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">SVF::PointsTo::test</a></div><div class="ttdeci">bool test(u32_t n) const</div><div class="ttdoc">Returns true if n is in this set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00125">PointsTo.cpp:125</a></div></div>
|
|
99
98
|
<div class="ttc" id="classSVF_1_1CoreBitVector_html_a553e3e51bffe1aab04adc047e0fd3f24"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#a553e3e51bffe1aab04adc047e0fd3f24">SVF::CoreBitVector::set</a></div><div class="ttdeci">void set(u32_t bit)</div><div class="ttdoc">Sets bit in the CBV. </div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00086">CoreBitVector.cpp:86</a></div></div>
|
|
@@ -117,6 +116,7 @@ $(function() {
|
|
|
117
116
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a6c1885ddfcc72604463f7c4ea94d2f74"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6c1885ddfcc72604463f7c4ea94d2f74">SVF::PointsTo::getCurrentBestNodeMapping</a></div><div class="ttdeci">static MappingPtr getCurrentBestNodeMapping(void)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00345">PointsTo.cpp:345</a></div></div>
|
|
118
117
|
<div class="ttc" id="PointsTo_8h_html"><div class="ttname"><a href="PointsTo_8h.html">PointsTo.h</a></div></div>
|
|
119
118
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a05aa807f21f311eb50ff11dde98b8d22"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a05aa807f21f311eb50ff11dde98b8d22">SVF::PointsTo::PointsTo</a></div><div class="ttdeci">PointsTo(void)</div><div class="ttdoc">Construct empty points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00024">PointsTo.cpp:24</a></div></div>
|
|
119
|
+
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html_a06c8e8c242c5de90c307665f589e3180"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a06c8e8c242c5de90c307665f589e3180">SVF::PointsTo::PointsToIterator::operator*</a></div><div class="ttdeci">u32_t operator*(void) const</div><div class="ttdoc">Dereference: *it. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00498">PointsTo.cpp:498</a></div></div>
|
|
120
120
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a79333c4ae5c002d9632fa589956b3605"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">SVF::PointsTo::cbv</a></div><div class="ttdeci">CoreBitVector cbv</div><div class="ttdoc">Core bit vector backing. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00161">PointsTo.h:161</a></div></div>
|
|
121
121
|
<div class="ttc" id="classSVF_1_1CoreBitVector_html_af08c16aed45dfa65472f0b5ae518add2"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#af08c16aed45dfa65472f0b5ae518add2">SVF::CoreBitVector::contains</a></div><div class="ttdeci">bool contains(const CoreBitVector &rhs) const</div><div class="ttdoc">Returns true if this CBV is a superset of rhs. </div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00103">CoreBitVector.cpp:103</a></div></div>
|
|
122
122
|
<div class="ttc" id="classSVF_1_1CoreBitVector_html_a93cdd9890522cc9fee2451567e0b1f0d"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#a93cdd9890522cc9fee2451567e0b1f0d">SVF::CoreBitVector::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00308">CoreBitVector.cpp:308</a></div></div>
|
|
@@ -139,7 +139,7 @@ $(function() {
|
|
|
139
139
|
<div class="ttc" id="cuddInt_8c_html_a8b2e13c78efca330f06b6ddcd7464b41"><div class="ttname"><a href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a></div><div class="ttdeci">static int result</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l07466">cuddInt.c:7466</a></div></div>
|
|
140
140
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
141
141
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a164aced0d6a19dd7ba8124ec2e77674c"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a164aced0d6a19dd7ba8124ec2e77674c">SVF::PointsTo::operator &=</a></div><div class="ttdeci">bool operator &=(const PointsTo &rhs)</div></div>
|
|
142
|
-
<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#
|
|
142
|
+
<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>
|
|
143
143
|
<div class="ttc" id="classSVF_1_1PointsTo_html_aa8644057ec182382e3c34e90d7d61ade"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa8644057ec182382e3c34e90d7d61ade">SVF::PointsTo::operator|=</a></div><div class="ttdeci">bool operator|=(const PointsTo &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00220">PointsTo.cpp:220</a></div></div>
|
|
144
144
|
<div class="ttc" id="classSVF_1_1CoreBitVector_html_abfed2e7daf2407e11cade625ac19a6ce"><div class="ttname"><a href="classSVF_1_1CoreBitVector.html#abfed2e7daf2407e11cade625ac19a6ce">SVF::CoreBitVector::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of bits set. </div><div class="ttdef"><b>Definition:</b> <a href="CoreBitVector_8cpp_source.html#l00056">CoreBitVector.cpp:56</a></div></div>
|
|
145
145
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a53e1230c87912d26604990eb8b0cbc0c"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a53e1230c87912d26604990eb8b0cbc0c">SVF::PointsTo::currentBestReverseNodeMapping</a></div><div class="ttdeci">static MappingPtr currentBestReverseNodeMapping</div><div class="ttdoc">Likewise, but reversed. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00152">PointsTo.h:152</a></div></div>
|