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

Description

template<>
struct Rose::AST::Defects::defect_t< Kind::integrity_edges >

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

Definition at line 84 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  Reason {
  Reason::invalid,
  Reason::incompatible,
  Reason::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

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 97 of file Defect.h.


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