PandA-2024.02
Public Types | Public Member Functions | Data Fields
gimple_bind Struct Reference

GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope. More...

#include <tree_node.hpp>

Inheritance diagram for gimple_bind:
Inheritance graph
[legend]
Collaboration diagram for gimple_bind:
Collaboration graph
[legend]

Public Types

enum  { GETID =(expr_node) = 0, GETID =(expr_node) = 0 }
 visitor enum More...
 
- Public Types inherited from expr_node
enum  { GETID =(srcp) = 0, GETID =(srcp) = 0 }
 visitor enum More...
 
- Public Types inherited from WeightedNode
enum  { GETID =(tree_node) = 0 }
 visitor enum More...
 

Public Member Functions

 gimple_bind (unsigned int i)
 constructor More...
 
void add_vars (const tree_nodeRef &a)
 Add a var to list of vars. More...
 
void visit (tree_node_visitor *const v) const override
 Redefinition of get_kind_text. More...
 
- Public Member Functions inherited from expr_node
 expr_node (unsigned int i)
 constructor More...
 
- Public Member Functions inherited from srcp
 srcp ()
 constructor More...
 
virtual ~srcp ()
 Destructor. More...
 
- Public Member Functions inherited from WeightedNode
 WeightedNode (unsigned int i)
 Constructor. More...
 
- Public Member Functions inherited from tree_node
 tree_node (unsigned int i)
 Constructor. More...
 
virtual ~tree_node ()=default
 Destructor. More...
 
virtual enum kind get_kind () const =0
 Virtual function returning the type of the actual class. More...
 
virtual std::string get_kind_text () const =0
 Virtual function returning the name of the actual class. More...
 
std::string ToString () const
 Print this node as string in gimple format. More...
 

Data Fields

std::vector< tree_nodeReflist_of_vars
 vars is the operand 0 (GIMPLE_BIND_VARS), this is a chain of VAR_DECL nodes for the variables. More...
 
tree_nodeRef body
 body is the operand 1 (GIMPLE_BIND_BODY), this is the body, the expression to be computed using the variables. More...
 
- Data Fields inherited from expr_node
tree_nodeRef type
 type of the expression More...
 
- Data Fields inherited from srcp
std::string include_name
 include_name is a filename string, this can be the location of a reference, if no definition has been seen. More...
 
unsigned int line_number
 line_number holds a line number. More...
 
unsigned int column_number
 column_number holds the column number. More...
 
- Data Fields inherited from tree_node
const unsigned int index
 Represent the index read from the raw file and the index-1 of the vector of tree_node associated to the functions vector present in the tree_manager. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from tree_node
static enum kind get_kind (const std::string &name)
 Given a string, return the corresponding kind. More...
 
static std::string GetString (const enum kind k)
 Given a kind, return the corresponding string. More...
 

Detailed Description

GIMPLE_BIND <VARS, BLOCK, BODY> represents a lexical scope.

VARS is the set of variables declared in that scope. BLOCK is the symbol binding block used for debug information. BODY is the sequence of statements in the scope. #(TOK_GIMPLE_BIND (vars)? body)

Definition at line 1664 of file tree_node.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 

Definition at line 1700 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ gimple_bind()

gimple_bind::gimple_bind ( unsigned int  i)
inlineexplicit

constructor

Definition at line 1667 of file tree_node.hpp.

Member Function Documentation

◆ add_vars()

void gimple_bind::add_vars ( const tree_nodeRef a)
inline

Add a var to list of vars.

Parameters
ais a NODE_ID.

Definition at line 1682 of file tree_node.hpp.

References GET_KIND, and GET_KIND_TEXT.

◆ visit()

void gimple_bind::visit ( tree_node_visitor *const  v) const
overridevirtual

Redefinition of get_kind_text.

Redefinition of get_kind. virtual function used to traverse the tree_node data structure.

Parameters
vis a reference to the tree_node visitor class

Reimplemented from expr_node.

Definition at line 465 of file tree_node.cpp.

References ALL_VISIT, SEQ_VISIT_MEMBER, type_node::visit(), VISIT_MEMBER, and VISIT_SC.

Here is the call graph for this function:

Field Documentation

◆ body

tree_nodeRef gimple_bind::body

body is the operand 1 (GIMPLE_BIND_BODY), this is the body, the expression to be computed using the variables.

The value of operand 1 becomes that of the GIMPLE_BIND.

Definition at line 1676 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ list_of_vars

std::vector<tree_nodeRef> gimple_bind::list_of_vars

vars is the operand 0 (GIMPLE_BIND_VARS), this is a chain of VAR_DECL nodes for the variables.

Definition at line 1672 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().


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

Generated on Mon Feb 12 2024 13:03:53 for PandA-2024.02 by doxygen 1.8.13