class ExplodedNode::NodeGroup

Declaration

class ExplodedNode::NodeGroup { /* full declaration omitted */ };

Description

Efficiently stores a list of ExplodedNodes, or an optional flag. NodeGroup provides opaque storage for a list of ExplodedNodes, optimizing for the case when there is only one node in the group. This is a fairly common case in an ExplodedGraph, where most nodes have only one predecessor and many have only one successor. It can also be used to store a flag rather than a node list, which ExplodedNode uses to mark whether a node is a sink. If the flag is set, the group is implicitly empty and no nodes may be added.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:83

Member Variables

private uintptr_t P

Method Overview

  • public NodeGroup(bool Flag = false)
  • public void addNode(clang::ento::ExplodedNode * N, clang::ento::ExplodedGraph & G)
  • public clang::ento::ExplodedNode *const * begin() const
  • public bool empty() const
  • public clang::ento::ExplodedNode *const * end() const
  • public bool getFlag() const
  • public void replaceNode(clang::ento::ExplodedNode * node)
  • public unsigned int size() const

Methods

NodeGroup(bool Flag = false)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:91

Parameters

bool Flag = false

void addNode(clang::ento::ExplodedNode* N,
             clang::ento::ExplodedGraph& G)

Description

Adds a node to the list. The group must not have been created with its flag set.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:106

Parameters

clang::ento::ExplodedNode* N
clang::ento::ExplodedGraph& G

clang::ento::ExplodedNode* const* begin() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:95

bool empty() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:101

clang::ento::ExplodedNode* const* end() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:97

bool getFlag() const

Description

Returns whether this group was created with its flag set.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:116

void replaceNode(clang::ento::ExplodedNode* node)

Description

Replaces the single node in this group with a new node. Note that this should only be used when you know the group was not created with its flag set, and that the group is empty or contains only a single node.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:113

Parameters

clang::ento::ExplodedNode* node

unsigned int size() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:99