PandA-2024.02
|
struct definition of the declaration node structures. More...
#include <tree_node.hpp>
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... | |
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.
anonymous enum |
visitor enum
Enumerator | |
---|---|
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID | |
GETID |
Definition at line 956 of file tree_node.hpp.
|
explicit |
Constructor.
Definition at line 270 of file tree_node.cpp.
|
overridevirtual |
virtual function used to traverse the tree_node data structure.
v | is 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().
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().
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().
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().
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().
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().
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().
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().
tree_nodeRef decl_node::name |
name field contains an identifier_node used to represent a name.
(tree-dump.c use the macro DECL_NAME)
Definition at line 883 of file tree_node.hpp.
Referenced by tree_manager::check_for_decl(), record_type::get_maybe_name(), tree_helper::GetMangledFunctionName(), GimpleWriter::GimpleWriter(), tree_manager::is_top_function(), tree_helper::print_function_name(), visit(), and raw_writer::write_when_not_null_point_to().
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().
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().
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().
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().
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().
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().