ROSE 0.11.145.290
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Rose::AST::Defects::defect_t< Kind::integrity_edges > Struct Reference

Description

Specialization of the defect_t template for the case of an edge integrity defect.

Attention
The name of this class violates the ROSE naming convention (not PascalCase). Users should not use this class until this is fixed since the change will be API breaking.

Definition at line 104 of file Defect.h.

#include <Rose/AST/Defect.h>

Inheritance diagram for Rose::AST::Defects::defect_t< Kind::integrity_edges >:
Inheritance graph
[legend]
Collaboration diagram for Rose::AST::Defects::defect_t< Kind::integrity_edges >:
Collaboration graph
[legend]

Public Types

enum class  Reason {
  invalid ,
  incompatible ,
  unallocated
}
 
- Public Types inherited from Rose::AST::Defects::defect_t< Kind::any >
using self_t = defect_t< Kind::any >
 

Public Member Functions

 defect_t (SgNode *source_, SgNode *target_, std::string label_, bool traversed_, bool container_, VariantT expected_, VariantT found_, Reason reason_)
 
virtual void print (std::ostream &out) const
 
- Public Member Functions inherited from Rose::AST::Defects::defect_t< Kind::any >
 defect_t (Kind kind_)
 

Public Attributes

SgNodesource
 Pointer to the source node of the edge (always a valid pointer and node)
 
SgNodetarget
 Pointer to the target node of the edge. Either the pointer or the node are invalid.
 
std::string label
 Label of this edge in the grammar.
 
bool traversed
 Traversed edges forms the structure of the AST while the other one represent relations like types and symbols.
 
bool container
 If the edge have multiplicity (like a node with a std::vector<SgExpression*>)
 
VariantT expected
 The expected variant for target (like V_SgExpression)
 
VariantT found
 The actual variant of target if the pointer is valid (obtained by finding the pointer in the memory pool)
 
enum Rose::AST::Defects::defect_t< Kind::integrity_edges >::Reason reason
 
- Public Attributes inherited from Rose::AST::Defects::defect_t< Kind::any >
Kind kind
 

Static Public Attributes

static constexpr Kind __kind = Kind::integrity_edges
 Needed to create defects from the typename instead of the kind.
 
- Static Public Attributes inherited from Rose::AST::Defects::defect_t< Kind::any >
static std::set< self_t * > all
 Set of all defects.
 

Additional Inherited Members

- Static Public Member Functions inherited from Rose::AST::Defects::defect_t< Kind::any >
template<Kind k, typename... Args>
static defect_t< k > const & record (Args... args)
 Call new for the specific kind of defect, forwards all argument to the constructor. Add pointer to all.
 
template<typename DefectT , typename... Args>
static DefectT const & record (Args... args)
 Call new for the specific defect type, forwards all argument to the constructor (requires the specialization to declare __kind)
 
static void clear ()
 Delete all stored defect and clear the container.
 
static void display (std::ostream &out)
 

Member Enumeration Documentation

◆ Reason

Enumerator
invalid 

Case when a node points to an address that is not in the memory pool (most probalby uninitialized pointer)

incompatible 

Case when a node points to a node of incompatible type (a declaration statement used in place of an expression – means that there was some incorrect cast somewhere)

unallocated 

Case when a node points to a deleted node.

Definition at line 117 of file Defect.h.

Member Function Documentation

◆ print()

virtual void Rose::AST::Defects::defect_t< Kind::integrity_edges >::print ( std::ostream &  out) const
virtual

Member Data Documentation

◆ __kind

Needed to create defects from the typename instead of the kind.

Definition at line 105 of file Defect.h.

◆ source

Pointer to the source node of the edge (always a valid pointer and node)

Definition at line 107 of file Defect.h.

◆ target

Pointer to the target node of the edge. Either the pointer or the node are invalid.

Definition at line 108 of file Defect.h.

◆ label

Label of this edge in the grammar.

Definition at line 110 of file Defect.h.

◆ traversed

Traversed edges forms the structure of the AST while the other one represent relations like types and symbols.

Definition at line 111 of file Defect.h.

◆ container

If the edge have multiplicity (like a node with a std::vector<SgExpression*>)

Definition at line 112 of file Defect.h.

◆ expected

The expected variant for target (like V_SgExpression)

Definition at line 114 of file Defect.h.

◆ found

The actual variant of target if the pointer is valid (obtained by finding the pointer in the memory pool)

Definition at line 115 of file Defect.h.


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