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

struct definition of the declaration node structures. More...

#include <tree_node.hpp>

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

Public Types

enum  {
  GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0,
  GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0, GETID =(srcp) = 0
}
 visitor enum More...
 

Public Member Functions

 decl_node (unsigned int i)
 Constructor. More...
 
void visit (tree_node_visitor *const v) const override
 virtual function used to traverse the tree_node data structure. More...
 
- Public Member Functions inherited from srcp
 srcp ()
 constructor More...
 
virtual ~srcp ()
 Destructor. 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

tree_nodeRef name
 name field contains an identifier_node used to represent a name. More...
 
tree_nodeRef mngl
 mngl field contains the name of the object as the assembler will see it. More...
 
tree_nodeRef orig
 For any sort of a ..._DECL node, this points to the original (abstract) decl node which this decl is an instance of, or else it is NULL indicating that this decl is not an instance of some other decl. More...
 
tree_nodeRef type
 type field holds the data type of the object, when relevant. More...
 
tree_nodeRef scpe
 scope declaration More...
 
tree_nodeRef attributes
 
bool artificial_flag
 artificial_flag field is used to indicate that this decl_node represents a compiler-generated entity. More...
 
bool packed_flag
 Indicates this field should be bit-packed. More...
 
bool operating_system_flag
 operating system flag: it's true when this is a variable of operating system library More...
 
bool library_system_flag
 library system flag: it's true when this is a variable of a standard library (e.g libmath) More...
 
bool libbambu_flag
 it is true when this is a declared inside libbambu More...
 
tree_nodeRef chan
 chan field: the decls in one binding context are chained through this field. More...
 
bool C_flag
 is true when the declaration has the C attribute More...
 
unsigned int uid
 The uid. 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

struct definition of the declaration node structures.

struct definition of the field decla. The tree walker structure of this field is: (name)? (mngl)? (type)? (scpe)? (srcp)? (TOK_ARTIFICIAL)? (chan)?

Definition at line 877 of file tree_node.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

visitor enum

Enumerator
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 
GETID 

Definition at line 956 of file tree_node.hpp.

Constructor & Destructor Documentation

◆ decl_node()

decl_node::decl_node ( unsigned int  i)
explicit

Constructor.

Definition at line 270 of file tree_node.cpp.

Member Function Documentation

◆ visit()

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

virtual function used to traverse the tree_node data structure.

Parameters
vis a reference to the tree_node visitor class

Reimplemented from tree_node.

Reimplemented in var_decl, type_decl, template_decl, result_decl, parm_decl, namespace_decl, function_decl, field_decl, const_decl, and memory_tag.

Definition at line 282 of file tree_node.cpp.

References ALL_VISIT, attributes, chan, mngl, name, orig, scpe, type, VISIT_MEMBER, and VISIT_SC.

Referenced by expr_node::visit().

Here is the caller graph for this function:

Field Documentation

◆ artificial_flag

bool decl_node::artificial_flag

artificial_flag field is used to indicate that this decl_node represents a compiler-generated entity.

(tree-dump.c use the macro DECL_ARTIFICIAL)

Definition at line 918 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ attributes

tree_nodeRef decl_node::attributes

Definition at line 912 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ C_flag

bool decl_node::C_flag

is true when the declaration has the C attribute

Definition at line 939 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ chan

tree_nodeRef decl_node::chan

chan field: the decls in one binding context are chained through this field.

(tree-dump.c use the macro TREE_CHAIN)

Definition at line 936 of file tree_node.hpp.

Referenced by visit(), and raw_writer::write_when_not_null_point_to().

◆ libbambu_flag

bool decl_node::libbambu_flag

it is true when this is a declared inside libbambu

Definition at line 930 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ library_system_flag

bool decl_node::library_system_flag

library system flag: it's true when this is a variable of a standard library (e.g libmath)

Definition at line 927 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ mngl

tree_nodeRef decl_node::mngl

mngl field contains the name of the object as the assembler will see it.

Often this is the same as DECL_NAME It is an identifier_node

Definition at line 890 of file tree_node.hpp.

Referenced by tree_manager::check_for_decl(), tree_helper::GetMangledFunctionName(), tree_helper::print_function_name(), visit(), and raw_writer::write_when_not_null_point_to().

◆ name

tree_nodeRef decl_node::name

◆ operating_system_flag

bool decl_node::operating_system_flag

operating system flag: it's true when this is a variable of operating system library

Definition at line 924 of file tree_node.hpp.

Referenced by BehavioralHelper::is_operating_system_function(), and raw_writer::write_when_not_null_point_to().

◆ orig

tree_nodeRef decl_node::orig

For any sort of a ..._DECL node, this points to the original (abstract) decl node which this decl is an instance of, or else it is NULL indicating that this decl is not an instance of some other decl.

For example, in a nested declaration of an inline function, this points back to the definition.

Definition at line 899 of file tree_node.hpp.

Referenced by visit(), target_mem_ref::visit(), and raw_writer::write_when_not_null_point_to().

◆ packed_flag

bool decl_node::packed_flag

Indicates this field should be bit-packed.

Definition at line 921 of file tree_node.hpp.

Referenced by raw_writer::write_when_not_null_point_to().

◆ scpe

tree_nodeRef decl_node::scpe

scope declaration

Definition at line 910 of file tree_node.hpp.

Referenced by tree_manager::check_for_decl(), visit(), and raw_writer::write_when_not_null_point_to().

◆ type

tree_nodeRef decl_node::type

type field holds the data type of the object, when relevant.

label_decl have no data type. for type_decl type field contents are the type whose name is being declared. (tree-dump.c use the macro TREE_TYPE)

Definition at line 907 of file tree_node.hpp.

Referenced by tree_helper::find_obj_type_ref_function(), GimpleWriter::GimpleWriter(), tree_helper::print_function_name(), soft_float_cg_ext::signature_lowering(), dead_code_eliminationIPA::signature_opt(), visit(), expr_node::visit(), target_mem_ref::visit(), target_mem_ref461::visit(), and raw_writer::write_when_not_null_point_to().

◆ uid

unsigned int decl_node::uid

The uid.

Definition at line 942 of file tree_node.hpp.

Referenced by GimpleWriter::GimpleWriter(), and 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:49 for PandA-2024.02 by doxygen 1.8.13