Static Value-Flow Analysis
Loading...
Searching...
No Matches
SVF::GenericGraphTraits< SVF::CallGraph * > Struct Reference

#include <CallGraph.h>

Inheritance diagram for SVF::GenericGraphTraits< SVF::CallGraph * >:
SVF::GenericGraphTraits< SVF::GenericGraph< SVF::CallGraphNode, SVF::CallGraphEdge > * > SVF::GenericGraphTraits< SVF::ThreadCallGraph * >

Public Types

typedef SVF::CallGraphNode * NodeRef
Public Types inherited from SVF::GenericGraphTraits< SVF::GenericGraph< SVF::CallGraphNode, SVF::CallGraphEdge > * >
using NodeRef

Static Public Member Functions

static const SVF::CallGraphNode * getRawNode (const SVF::CallGraphNode *n)
static void getInEdges (const SVF::CallGraph *, const SVF::CallGraphNode *n, std::vector< const SVF::CallGraphEdge * > &out)
 In-edges of n under this graph (whole CallGraph: all of them).
static void getOutEdges (const SVF::CallGraph *, const SVF::CallGraphNode *n, std::vector< const SVF::CallGraphEdge * > &out)
static void getDirectCalls (const SVF::CallGraph *, const SVF::CallGraphEdge *e, std::vector< const SVF::CallICFGNode * > &out)
static void getIndirectCalls (const SVF::CallGraph *, const SVF::CallGraphEdge *e, std::vector< const SVF::CallICFGNode * > &out)
static bool containsCallSite (const SVF::CallGraph *, const SVF::CallGraphEdge *e, const SVF::CallICFGNode *callSite)
static void getCallees (SVF::CallGraph *g, const SVF::CallICFGNode *callSite, SVF::CallGraph::FunctionSet &callees)

Detailed Description

Definition at line 502 of file CallGraph.h.

Member Typedef Documentation

◆ NodeRef

Definition at line 504 of file CallGraph.h.

Member Function Documentation

◆ containsCallSite()

bool SVF::GenericGraphTraits< SVF::CallGraph * >::containsCallSite ( const SVF::CallGraph * ,
const SVF::CallGraphEdge * e,
const SVF::CallICFGNode * callSite )
inlinestatic

Definition at line 539 of file CallGraph.h.

542 {
543 return e->getDirectCalls().count(callSite) ||
544 e->getIndirectCalls().count(callSite);
545 }

◆ getCallees()

void SVF::GenericGraphTraits< SVF::CallGraph * >::getCallees ( SVF::CallGraph * g,
const SVF::CallICFGNode * callSite,
SVF::CallGraph::FunctionSet & callees )
inlinestatic

Definition at line 546 of file CallGraph.h.

549 {
550 callees.clear();
551 g->getCallees(callSite, callees);
552 }

◆ getDirectCalls()

void SVF::GenericGraphTraits< SVF::CallGraph * >::getDirectCalls ( const SVF::CallGraph * ,
const SVF::CallGraphEdge * e,
std::vector< const SVF::CallICFGNode * > & out )
inlinestatic

Definition at line 529 of file CallGraph.h.

531 {
532 out.assign(e->getDirectCalls().begin(), e->getDirectCalls().end());
533 }

◆ getIndirectCalls()

void SVF::GenericGraphTraits< SVF::CallGraph * >::getIndirectCalls ( const SVF::CallGraph * ,
const SVF::CallGraphEdge * e,
std::vector< const SVF::CallICFGNode * > & out )
inlinestatic

Definition at line 534 of file CallGraph.h.

536 {
537 out.assign(e->getIndirectCalls().begin(), e->getIndirectCalls().end());
538 }

◆ getInEdges()

void SVF::GenericGraphTraits< SVF::CallGraph * >::getInEdges ( const SVF::CallGraph * ,
const SVF::CallGraphNode * n,
std::vector< const SVF::CallGraphEdge * > & out )
inlinestatic

In-edges of n under this graph (whole CallGraph: all of them).

Definition at line 515 of file CallGraph.h.

517 {
518 out.clear();
519 for (SVF::CallGraphEdge* e : n->getInEdges())
520 out.push_back(e);
521 }

◆ getOutEdges()

void SVF::GenericGraphTraits< SVF::CallGraph * >::getOutEdges ( const SVF::CallGraph * ,
const SVF::CallGraphNode * n,
std::vector< const SVF::CallGraphEdge * > & out )
inlinestatic

Definition at line 522 of file CallGraph.h.

524 {
525 out.clear();
526 for (SVF::CallGraphEdge* e : n->getOutEdges())
527 out.push_back(e);
528 }

◆ getRawNode()

const SVF::CallGraphNode * SVF::GenericGraphTraits< SVF::CallGraph * >::getRawNode ( const SVF::CallGraphNode * n)
inlinestatic

Definition at line 506 of file CallGraph.h.

507 {
508 return n;
509 }

The documentation for this struct was generated from the following file: