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)
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)
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* const* begin() const
clang::ento::ExplodedNode* const* begin() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:95
¶bool empty() const
bool empty() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:101
¶clang::ento::ExplodedNode* const* end() const
clang::ento::ExplodedNode* const* end() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:97
¶bool getFlag() const
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)
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
¶unsigned int size() const
unsigned int size() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:99