svf-tools 1.0.402 → 1.0.405
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/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +5 -6
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +2 -2
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +10 -10
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -3
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
- 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_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_1CloneDummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
- 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_1ExtAPI.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- 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-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +48 -48
- 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_1MultiOpndStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +63 -63
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_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.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- 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_1VariantGepCGEdge.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +6 -6
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +9 -9
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_func_v.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +9 -9
- package/SVF-doxygen/html/html/functions_i.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +3 -3
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_v.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF.html +5 -5
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +4 -4
- package/SVF-doxygen/html/html/namespacemembers_s.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_s.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +5 -5
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -5
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/functions_a.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +2 -2
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/ICFGEdge.h +3 -3
- package/include/MemoryModel/LocationSet.h +5 -5
- package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
- package/include/MemoryModel/SVFIR.h +1 -1
- package/include/MemoryModel/SVFStatements.h +4 -4
- package/include/MemoryModel/SVFVariables.h +2 -2
- package/include/MemoryModel/SymbolTableInfo.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +2 -2
- package/include/Util/IRAnnotator.h +2 -2
- package/include/Util/SVFBasicTypes.h +1 -1
- package/include/WPA/AndersenSFR.h +1 -1
- package/include/WPA/CSC.h +1 -1
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/MTA/MHP.cpp +2 -2
- package/lib/MemoryModel/LocationSet.cpp +3 -3
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +2 -2
- package/lib/MemoryModel/SVFIR.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +3 -3
- package/lib/SVF-FE/CPPUtil.cpp +6 -6
- package/lib/SVF-FE/ICFGBuilder.cpp +1 -1
- package/lib/SVF-FE/LLVMUtil.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +17 -10
- package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
- package/lib/Util/Conditions.cpp +1 -1
- package/lib/Util/ExtAPI.cpp +13 -0
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/AndersenSFR.cpp +6 -6
- package/lib/WPA/CSC.cpp +5 -5
- package/lib/WPA/TypeAnalysis.cpp +3 -3
- package/package.json +1 -1
|
@@ -87,8 +87,8 @@ Inheritance diagram for SVF::BranchStmt:</div>
|
|
|
87
87
|
<table class="memberdecls">
|
|
88
88
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
|
89
89
|
Public Types</h2></td></tr>
|
|
90
|
-
<tr class="memitem:
|
|
91
|
-
<tr class="separator:
|
|
90
|
+
<tr class="memitem:a6a0e64824777f04be4c169125dd4f666"><td class="memItemLeft" align="right" valign="top">typedef std::vector< std::pair< const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a></td></tr>
|
|
91
|
+
<tr class="separator:a6a0e64824777f04be4c169125dd4f666"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
92
|
<tr class="inherit_header pub_types_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
|
|
93
93
|
<tr class="memitem:a0ab8621e75e75f03425c323b3ed62ce9 inherit pub_types_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a> { <br />
|
|
94
94
|
  <a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>,
|
|
@@ -126,7 +126,7 @@ Public Types</h2></td></tr>
|
|
|
126
126
|
<tr class="separator:aff95460d4b859e657a9198b7c5e5c736 inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
127
127
|
<tr class="memitem:aab8892b73370c32b48621cd1d0cce614 inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a></td></tr>
|
|
128
128
|
<tr class="separator:aab8892b73370c32b48621cd1d0cce614 inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
129
|
-
<tr class="memitem:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#
|
|
129
|
+
<tr class="memitem:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a></td></tr>
|
|
130
130
|
<tr class="separator:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
131
131
|
<tr class="memitem:a69accb303ee67733e065350e4452cbca inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSVF_1_1GenericEdge_1_1equalGEdge.html">SVF::GenericEdge::equalGEdge</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">equalGEdge</a></td></tr>
|
|
132
132
|
<tr class="memdesc:a69accb303ee67733e065350e4452cbca inherit pub_types_classSVF_1_1GenericEdge"><td class="mdescLeft"> </td><td class="mdescRight">Add the hash function for std::set (we also can overload operator< to implement this) <a href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">More...</a><br /></td></tr>
|
|
@@ -134,7 +134,7 @@ Public Types</h2></td></tr>
|
|
|
134
134
|
</table><table class="memberdecls">
|
|
135
135
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
136
136
|
Public Member Functions</h2></td></tr>
|
|
137
|
-
<tr class="memitem:a5e102d5c08b7121efc87b99651f0b5d2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *inst, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *c, const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
137
|
+
<tr class="memitem:a5e102d5c08b7121efc87b99651f0b5d2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *inst, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *c, const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a> &succs)</td></tr>
|
|
138
138
|
<tr class="memdesc:a5e102d5c08b7121efc87b99651f0b5d2"><td class="mdescLeft"> </td><td class="mdescRight">constructor <a href="#a5e102d5c08b7121efc87b99651f0b5d2">More...</a><br /></td></tr>
|
|
139
139
|
<tr class="separator:a5e102d5c08b7121efc87b99651f0b5d2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
140
140
|
<tr class="memitem:a038d65e38fe792fec4050d3d1c9c5180"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a038d65e38fe792fec4050d3d1c9c5180">isUnconditional</a> () const</td></tr>
|
|
@@ -153,12 +153,12 @@ Public Member Functions</h2></td></tr>
|
|
|
153
153
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
154
154
|
<tr class="memitem:a022d355bde3d0d0a9471cd125b24583b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a> () const</td></tr>
|
|
155
155
|
<tr class="separator:a022d355bde3d0d0a9471cd125b24583b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
156
|
-
<tr class="memitem:a93040c884df211ac62d53ceafdd9c4dd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
156
|
+
<tr class="memitem:a93040c884df211ac62d53ceafdd9c4dd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a> () const</td></tr>
|
|
157
157
|
<tr class="separator:a93040c884df211ac62d53ceafdd9c4dd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
158
158
|
<tr class="memitem:a7d9a6ebb2d95942c453864b5327b1ae8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const</td></tr>
|
|
159
159
|
<tr class="separator:a7d9a6ebb2d95942c453864b5327b1ae8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
160
|
-
<tr class="memitem:
|
|
161
|
-
<tr class="separator:
|
|
160
|
+
<tr class="memitem:a0881e8decb0bfe2066995d9d729d1aad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a0881e8decb0bfe2066995d9d729d1aad">getSuccessorCondValue</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const</td></tr>
|
|
161
|
+
<tr class="separator:a0881e8decb0bfe2066995d9d729d1aad"><td class="memSeparator" colspan="2"> </td></tr>
|
|
162
162
|
<tr class="inherit_header pub_methods_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
|
|
163
163
|
<tr class="memitem:a2ab7295fe26d2c6d2d5c9fd027f96a47 inherit pub_methods_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a2ab7295fe26d2c6d2d5c9fd027f96a47">SVFStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k, bool real=true)</td></tr>
|
|
164
164
|
<tr class="memdesc:a2ab7295fe26d2c6d2d5c9fd027f96a47 inherit pub_methods_classSVF_1_1SVFStmt"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFStmt.html#a2ab7295fe26d2c6d2d5c9fd027f96a47">More...</a><br /></td></tr>
|
|
@@ -259,7 +259,7 @@ Private Member Functions</h2></td></tr>
|
|
|
259
259
|
</table><table class="memberdecls">
|
|
260
260
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
261
261
|
Private Attributes</h2></td></tr>
|
|
262
|
-
<tr class="memitem:a40854cd95fbae16ef8e370255d0e3cf5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BranchStmt.html#
|
|
262
|
+
<tr class="memitem:a40854cd95fbae16ef8e370255d0e3cf5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">successors</a></td></tr>
|
|
263
263
|
<tr class="separator:a40854cd95fbae16ef8e370255d0e3cf5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
264
264
|
<tr class="memitem:adcf5cabe6e0a87cded5ef1fdf7273f3f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a></td></tr>
|
|
265
265
|
<tr class="separator:adcf5cabe6e0a87cded5ef1fdf7273f3f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -284,14 +284,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
284
284
|
|
|
285
285
|
<p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00921">921</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
|
|
286
286
|
</div><h2 class="groupheader">Member Typedef Documentation</h2>
|
|
287
|
-
<a id="
|
|
288
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
287
|
+
<a id="a6a0e64824777f04be4c169125dd4f666"></a>
|
|
288
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a6a0e64824777f04be4c169125dd4f666">◆ </a></span>SuccAndCondPairVec</h2>
|
|
289
289
|
|
|
290
290
|
<div class="memitem">
|
|
291
291
|
<div class="memproto">
|
|
292
292
|
<table class="memname">
|
|
293
293
|
<tr>
|
|
294
|
-
<td class="memname">typedef std::vector<std::pair<const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>*, <a class="el" href="namespaceSVF.html#
|
|
294
|
+
<td class="memname">typedef std::vector<std::pair<const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>*, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>> > <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SVF::BranchStmt::SuccAndCondPairVec</a></td>
|
|
295
295
|
</tr>
|
|
296
296
|
</table>
|
|
297
297
|
</div><div class="memdoc">
|
|
@@ -380,7 +380,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
380
380
|
<tr>
|
|
381
381
|
<td class="paramkey"></td>
|
|
382
382
|
<td></td>
|
|
383
|
-
<td class="paramtype">const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
383
|
+
<td class="paramtype">const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a> & </td>
|
|
384
384
|
<td class="paramname"><em>succs</em> </td>
|
|
385
385
|
</tr>
|
|
386
386
|
<tr>
|
|
@@ -712,8 +712,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
712
712
|
</div><!-- fragment -->
|
|
713
713
|
</div>
|
|
714
714
|
</div>
|
|
715
|
-
<a id="
|
|
716
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
715
|
+
<a id="a0881e8decb0bfe2066995d9d729d1aad"></a>
|
|
716
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0881e8decb0bfe2066995d9d729d1aad">◆ </a></span>getSuccessorCondValue()</h2>
|
|
717
717
|
|
|
718
718
|
<div class="memitem">
|
|
719
719
|
<div class="memproto">
|
|
@@ -722,7 +722,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
722
722
|
<td class="mlabels-left">
|
|
723
723
|
<table class="memname">
|
|
724
724
|
<tr>
|
|
725
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#
|
|
725
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> SVF::BranchStmt::getSuccessorCondValue </td>
|
|
726
726
|
<td>(</td>
|
|
727
727
|
<td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td>
|
|
728
728
|
<td class="paramname"><em>i</em></td><td>)</td>
|
|
@@ -751,7 +751,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
751
751
|
<td class="mlabels-left">
|
|
752
752
|
<table class="memname">
|
|
753
753
|
<tr>
|
|
754
|
-
<td class="memname">const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
754
|
+
<td class="memname">const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a>& SVF::BranchStmt::getSuccessors </td>
|
|
755
755
|
<td>(</td>
|
|
756
756
|
<td class="paramname"></td><td>)</td>
|
|
757
757
|
<td> const</td>
|
|
@@ -945,7 +945,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
945
945
|
<td class="mlabels-left">
|
|
946
946
|
<table class="memname">
|
|
947
947
|
<tr>
|
|
948
|
-
<td class="memname"><a class="el" href="classSVF_1_1BranchStmt.html#
|
|
948
|
+
<td class="memname"><a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SuccAndCondPairVec</a> SVF::BranchStmt::successors</td>
|
|
949
949
|
</tr>
|
|
950
950
|
</table>
|
|
951
951
|
</td>
|
|
@@ -97,7 +97,7 @@ Public Member Functions</h2></td></tr>
|
|
|
97
97
|
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
|
|
98
98
|
<tr class="memitem:ad070e36a440deb982779cec18aa03ee6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchVFGNode.html#ad070e36a440deb982779cec18aa03ee6">getNumSuccessors</a> () const</td></tr>
|
|
99
99
|
<tr class="separator:ad070e36a440deb982779cec18aa03ee6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
-
<tr class="memitem:a2ef5951de4760d28adb9d82b22067360"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
100
|
+
<tr class="memitem:a2ef5951de4760d28adb9d82b22067360"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchVFGNode.html#a2ef5951de4760d28adb9d82b22067360">getSuccessors</a> () const</td></tr>
|
|
101
101
|
<tr class="separator:a2ef5951de4760d28adb9d82b22067360"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
102
|
<tr class="memitem:ae611eb1d27846c15b7301017e1864a30"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BranchVFGNode.html#ae611eb1d27846c15b7301017e1864a30">getSuccessor</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const</td></tr>
|
|
103
103
|
<tr class="separator:ae611eb1d27846c15b7301017e1864a30"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -268,7 +268,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
268
268
|
<tr class="separator:ad63e862eb1d1369bd69318fe698e4a22 inherit pub_types_classSVF_1_1GenericNode"><td class="memSeparator" colspan="2"> </td></tr>
|
|
269
269
|
<tr class="memitem:a458c626543431b4314f5f4f532eb51de inherit pub_types_classSVF_1_1GenericNode"><td class="memItemLeft" align="right" valign="top">typedef EdgeTy </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericNode.html#a458c626543431b4314f5f4f532eb51de">EdgeType</a></td></tr>
|
|
270
270
|
<tr class="separator:a458c626543431b4314f5f4f532eb51de inherit pub_types_classSVF_1_1GenericNode"><td class="memSeparator" colspan="2"> </td></tr>
|
|
271
|
-
<tr class="memitem:a3f20339b5295e11beb0f9adb95c7aa5b inherit pub_types_classSVF_1_1GenericNode"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#
|
|
271
|
+
<tr class="memitem:a3f20339b5295e11beb0f9adb95c7aa5b inherit pub_types_classSVF_1_1GenericNode"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a></td></tr>
|
|
272
272
|
<tr class="memdesc:a3f20339b5295e11beb0f9adb95c7aa5b inherit pub_types_classSVF_1_1GenericNode"><td class="mdescLeft"> </td><td class="mdescRight">Edge kind. <a href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">More...</a><br /></td></tr>
|
|
273
273
|
<tr class="separator:a3f20339b5295e11beb0f9adb95c7aa5b inherit pub_types_classSVF_1_1GenericNode"><td class="memSeparator" colspan="2"> </td></tr>
|
|
274
274
|
<tr class="memitem:a03c6da4a73c47f84f5c5b47252bc339a inherit pub_types_classSVF_1_1GenericNode"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet</a>< <a class="el" href="classSVF_1_1GenericNode.html#a458c626543431b4314f5f4f532eb51de">EdgeType</a> *, typename EdgeType::equalGEdge > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GEdgeSetTy</a></td></tr>
|
|
@@ -574,7 +574,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
574
574
|
<td class="mlabels-left">
|
|
575
575
|
<table class="memname">
|
|
576
576
|
<tr>
|
|
577
|
-
<td class="memname">const <a class="el" href="classSVF_1_1BranchStmt.html#
|
|
577
|
+
<td class="memname">const <a class="el" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a>& SVF::BranchVFGNode::getSuccessors </td>
|
|
578
578
|
<td>(</td>
|
|
579
579
|
<td class="paramname"></td><td>)</td>
|
|
580
580
|
<td> const</td>
|
|
@@ -97,7 +97,7 @@ Public Types</h2></td></tr>
|
|
|
97
97
|
<tr class="separator:aff95460d4b859e657a9198b7c5e5c736 inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
98
|
<tr class="memitem:aab8892b73370c32b48621cd1d0cce614 inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a></td></tr>
|
|
99
99
|
<tr class="separator:aab8892b73370c32b48621cd1d0cce614 inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
100
|
-
<tr class="memitem:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#
|
|
100
|
+
<tr class="memitem:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a></td></tr>
|
|
101
101
|
<tr class="separator:a5aceeb48929f54264807b36569019a8a inherit pub_types_classSVF_1_1GenericEdge"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
102
|
<tr class="memitem:a69accb303ee67733e065350e4452cbca inherit pub_types_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structSVF_1_1GenericEdge_1_1equalGEdge.html">SVF::GenericEdge::equalGEdge</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">equalGEdge</a></td></tr>
|
|
103
103
|
<tr class="memdesc:a69accb303ee67733e065350e4452cbca inherit pub_types_classSVF_1_1GenericEdge"><td class="mdescLeft"> </td><td class="mdescRight">Add the hash function for std::set (we also can overload operator< to implement this) <a href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">More...</a><br /></td></tr>
|
|
@@ -516,8 +516,7 @@ Private Attributes</h2></td></tr>
|
|
|
516
516
|
</div><div class="memdoc">
|
|
517
517
|
|
|
518
518
|
<p class="definition">Definition at line <a class="el" href="CHGBuilder_8cpp_source.html#l00541">541</a> of file <a class="el" href="CHGBuilder_8cpp_source.html">CHGBuilder.cpp</a>.</p>
|
|
519
|
-
<div class="fragment"><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>  <span class="comment">/*</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="comment"> * 1. Divide classes into groups</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment"> * 2. Get all virtual functions in a group</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"> * 3. Assign consecutive IDs to virtual functions that have</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment"> * the same name (after demangling) in a group</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="comment"> */</span></div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> visitedNodes;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> nit = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  neit = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); nit != neit; ++nit)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = nit->second;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">if</span> (visitedNodes.find(node) != visitedNodes.end())</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordtype">string</span> className = node-><a class="code" href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">getName</a>();</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">/*</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment"> * get all the classes in a specific group</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment"> */</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> group;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  stack<const CHNode*> nodeStack;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  nodeStack.push(node);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *curnode = nodeStack.top();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  nodeStack.pop();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  group.insert(curnode);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (visitedNodes.find(curnode) != visitedNodes.end())</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().begin(),</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().end(); it != eit; ++it)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getDstNode();</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  nodeStack.push(tmpnode);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  group.insert(tmpnode);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(),</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it != eit; ++it)</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getSrcNode();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  nodeStack.push(tmpnode);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  group.insert(tmpnode);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  visitedNodes.insert(curnode);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">/*</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment"> * get all virtual functions in a specific group</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment"> */</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  set<const SVFFunction*> virtualFunctions;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">for</span> (CHGraph::CHNodeSetTy::iterator it = group.begin(),</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  eit = group.end(); it != eit; ++it)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">const</span> vector<CHNode::FuncVector> &vecs = (*it)-><a class="code" href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">getVirtualFunctionVectors</a>();</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">for</span> (vector<CHNode::FuncVector>::const_iterator vit = vecs.begin(),</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  veit = vecs.end(); vit != veit; ++vit)</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">for</span> (vector<const SVFFunction*>::const_iterator fit = (*vit).begin(),</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  feit = (*vit).end(); fit != feit; ++fit)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  virtualFunctions.insert(*fit);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">/*</span></div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="comment"> * build a set of pairs of demangled function name and function in a</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment"> * specific group, items in the set will be sort by the first item of the</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="comment"> * pair, so all the virtual functions in a group will be sorted by the</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="comment"> * demangled function name</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="comment"> * <f, A::f></span></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="comment"> * <f, B::f></span></div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment"> * <g, A::g></span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment"> * <g, B::g></span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="comment"> * <g, C::g></span></div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment"> * <~A, A::~A></span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment"> * <~B, B::~B></span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="comment"> * <~C, C::~C></span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="comment"> * ...</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="comment"> */</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  set<pair<string, const SVFFunction*> > fNameSet;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">for</span> (set<const SVFFunction*>::iterator fit = virtualFunctions.begin(),</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  feit = virtualFunctions.end(); fit != feit; ++fit)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f = *fit;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(f-><a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>());</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  fNameSet.insert(pair<string, const SVFFunction*>(dname.funcName, f));</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">for</span> (<span class="keyword">set</span><pair<string, const SVFFunction*>>::iterator it = fNameSet.begin(),</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  eit = fNameSet.end(); it != eit; ++it)</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1CHGraph.html#af3484748d0dd2567542acd3be18d3c4a">virtualFunctionToIDMap</a>[it->second] = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1CHGraph.html#ac3be8c8dfee16d7508b73b6f2270eb2d">vfID</a>++;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
520
|
-
<div class="ttc" id="classSVF_1_1CHGraph_html_af3484748d0dd2567542acd3be18d3c4a"><div class="ttname"><a href="classSVF_1_1CHGraph.html#af3484748d0dd2567542acd3be18d3c4a">SVF::CHGraph::virtualFunctionToIDMap</a></div><div class="ttdeci">Map< const SVFFunction *, s64_t > virtualFunctionToIDMap</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00321">CHG.h:321</a></div></div>
|
|
519
|
+
<div class="fragment"><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>  <span class="comment">/*</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> <span class="comment"> * 1. Divide classes into groups</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment"> * 2. Get all virtual functions in a group</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"> * 3. Assign consecutive IDs to virtual functions that have</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment"> * the same name (after demangling) in a group</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="comment"> */</span></div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> visitedNodes;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> nit = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(),</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  neit = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); nit != neit; ++nit)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = nit->second;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">if</span> (visitedNodes.find(node) != visitedNodes.end())</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> </div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordtype">string</span> className = node-><a class="code" href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">getName</a>();</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">/*</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> <span class="comment"> * get all the classes in a specific group</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="comment"> */</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <a class="code" href="classSVF_1_1CHGraph.html#ad0f60c720b277c60ed8a8966189bb42b">CHGraph::CHNodeSetTy</a> group;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  stack<const CHNode*> nodeStack;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  nodeStack.push(node);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">while</span> (!nodeStack.empty())</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>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *curnode = nodeStack.top();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  nodeStack.pop();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  group.insert(curnode);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (visitedNodes.find(curnode) != visitedNodes.end())</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().begin(),</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>().end(); it != eit; ++it)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getDstNode();</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  nodeStack.push(tmpnode);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  group.insert(tmpnode);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">for</span> (CHEdge::CHEdgeSetTy::const_iterator it = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(),</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  eit = curnode-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it != eit; ++it)</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *tmpnode = (*it)->getSrcNode();</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  nodeStack.push(tmpnode);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  group.insert(tmpnode);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  visitedNodes.insert(curnode);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">/*</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment"> * get all virtual functions in a specific group</span></div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment"> */</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  set<const SVFFunction*> virtualFunctions;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">for</span> (CHGraph::CHNodeSetTy::iterator it = group.begin(),</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  eit = group.end(); it != eit; ++it)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">const</span> vector<CHNode::FuncVector> &vecs = (*it)-><a class="code" href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">getVirtualFunctionVectors</a>();</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">for</span> (vector<CHNode::FuncVector>::const_iterator vit = vecs.begin(),</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  veit = vecs.end(); vit != veit; ++vit)</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">for</span> (vector<const SVFFunction*>::const_iterator fit = (*vit).begin(),</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  feit = (*vit).end(); fit != feit; ++fit)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  virtualFunctions.insert(*fit);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">/*</span></div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="comment"> * build a set of pairs of demangled function name and function in a</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment"> * specific group, items in the set will be sort by the first item of the</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="comment"> * pair, so all the virtual functions in a group will be sorted by the</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="comment"> * demangled function name</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="comment"> * <f, A::f></span></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="comment"> * <f, B::f></span></div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment"> * <g, A::g></span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment"> * <g, B::g></span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="comment"> * <g, C::g></span></div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment"> * <~A, A::~A></span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment"> * <~B, B::~B></span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="comment"> * <~C, C::~C></span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="comment"> * ...</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="comment"> */</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  set<pair<string, const SVFFunction*> > fNameSet;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">for</span> (set<const SVFFunction*>::iterator fit = virtualFunctions.begin(),</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  feit = virtualFunctions.end(); fit != feit; ++fit)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f = *fit;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">demangle</a>(f-><a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>());</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  fNameSet.insert(pair<string, const SVFFunction*>(dname.funcName, f));</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">for</span> (<span class="keyword">set</span><pair<string, const SVFFunction*>>::iterator it = fNameSet.begin(),</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  eit = fNameSet.end(); it != eit; ++it)</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1CHGraph.html#a70a2bab82563a910d32a9169030596c0">virtualFunctionToIDMap</a>[it->second] = <a class="code" href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">chg</a>-><a class="code" href="classSVF_1_1CHGraph.html#ab2d60bc836482fb98142da6151a91270">vfID</a>++;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
|
|
521
520
|
<div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy & getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00182">GenericGraph.h:182</a></div></div>
|
|
522
521
|
<div class="ttc" id="classSVF_1_1CHNode_html"><div class="ttname"><a href="classSVF_1_1CHNode.html">SVF::CHNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00104">CHG.h:104</a></div></div>
|
|
523
522
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00219">BasicTypes.h:219</a></div></div>
|
|
@@ -525,10 +524,11 @@ Private Attributes</h2></td></tr>
|
|
|
525
524
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00339">GenericGraph.h:339</a></div></div>
|
|
526
525
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
527
526
|
<div class="ttc" id="classSVF_1_1CHGBuilder_html_ab3471cc9afba5976c7e5fbd07dfb22dc"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">SVF::CHGBuilder::chg</a></div><div class="ttdeci">CHGraph * chg</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8h_source.html#l00037">CHGBuilder.h:37</a></div></div>
|
|
527
|
+
<div class="ttc" id="classSVF_1_1CHGraph_html_a70a2bab82563a910d32a9169030596c0"><div class="ttname"><a href="classSVF_1_1CHGraph.html#a70a2bab82563a910d32a9169030596c0">SVF::CHGraph::virtualFunctionToIDMap</a></div><div class="ttdeci">Map< const SVFFunction *, u32_t > virtualFunctionToIDMap</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00321">CHG.h:321</a></div></div>
|
|
528
528
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00178">GenericGraph.h:178</a></div></div>
|
|
529
|
-
<div class="ttc" id="classSVF_1_1CHGraph_html_ac3be8c8dfee16d7508b73b6f2270eb2d"><div class="ttname"><a href="classSVF_1_1CHGraph.html#ac3be8c8dfee16d7508b73b6f2270eb2d">SVF::CHGraph::vfID</a></div><div class="ttdeci">s64_t vfID</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00312">CHG.h:312</a></div></div>
|
|
530
529
|
<div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00249">SVFBasicTypes.h:249</a></div></div>
|
|
531
530
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_a1007c092efaeae41002efd91b803a7f6"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a1007c092efaeae41002efd91b803a7f6">SVF::cppUtil::demangle</a></div><div class="ttdeci">struct DemangledName demangle(const std::string &name)</div></div>
|
|
531
|
+
<div class="ttc" id="classSVF_1_1CHGraph_html_ab2d60bc836482fb98142da6151a91270"><div class="ttname"><a href="classSVF_1_1CHGraph.html#ab2d60bc836482fb98142da6151a91270">SVF::CHGraph::vfID</a></div><div class="ttdeci">u32_t vfID</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00312">CHG.h:312</a></div></div>
|
|
532
532
|
<div class="ttc" id="classSVF_1_1CHNode_html_af6e71c1a932464b1b615fc177f5af089"><div class="ttname"><a href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">SVF::CHNode::getName</a></div><div class="ttdeci">std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00123">CHG.h:123</a></div></div>
|
|
533
533
|
<div class="ttc" id="classSVF_1_1CHNode_html_a5df1cf4d51bf3406d188c96bc9aae0af"><div class="ttname"><a href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">SVF::CHNode::getVirtualFunctionVectors</a></div><div class="ttdeci">const std::vector< FuncVector > & getVirtualFunctionVectors() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00171">CHG.h:171</a></div></div>
|
|
534
534
|
</div><!-- fragment -->
|
|
@@ -114,8 +114,8 @@ $(function() {
|
|
|
114
114
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a29cab1426b0000bd87c026ab8c9979c0">getTotalEdgeNum</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
115
115
|
<tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
116
116
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#ac5f5646db24455609cd86c421774dd3e">getVFnsFromVtbls</a>(CallSite cs, const VTableSet &vtbls, VFunSet &virtualFunctions) override</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
|
|
117
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#
|
|
118
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#
|
|
117
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a7b678b4362a93e969f11b110b85d35ca">getVirtualFunctionBasedonID</a>(u32_t id) const</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
118
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a7151563857b7b6bdf8195aa571df7516">getVirtualFunctionID</a>(const SVFFunction *vfn) const</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
119
119
|
<tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(NodeID id) const</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
120
120
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a47a1ef8b67b0c92f78b4457dc3bbfe71">IDToNodeMap</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
|
121
121
|
<tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#ab9027b190f50ceefc90094e4f967f269">IDToNodeMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"></td></tr>
|
|
@@ -132,9 +132,9 @@ $(function() {
|
|
|
132
132
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CommonCHGraph.html#a6a1feb9e268fb56b0de3efc39cfc8db8afa3f4c3017fb95011bfdc11b147eae0c">Standard</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1CommonCHGraph.html">SVF::CommonCHGraph</a></td><td class="entry"></td></tr>
|
|
133
133
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a62a3ccdbc55381d5f8d96dc23141f2e5">svfMod</a></td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
134
134
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#acd022005e2191bc3bcb265805abee4f8">templateNameToInstancesMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
135
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#
|
|
135
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#ab2d60bc836482fb98142da6151a91270">vfID</a></td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
136
136
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a87a7d8c281490fbd2377d64b0115d262">view</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"></td></tr>
|
|
137
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#
|
|
137
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a70a2bab82563a910d32a9169030596c0">virtualFunctionToIDMap</a></td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
138
138
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#af1b638faf888898cdf168c25e008ab12">WorkList</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"></td></tr>
|
|
139
139
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html#a63c4f42eea94e786090a546fc2195a00">~CHGraph</a>() override=default</td><td class="entry"><a class="el" href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></td><td class="entry"></td></tr>
|
|
140
140
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CommonCHGraph.html#aeb7e79b36c74bcded008fe227952c335">~CommonCHGraph</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CommonCHGraph.html">SVF::CommonCHGraph</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
|