PandA-2024.02
|
struct definition of the label_decl tree node. More...
#include <tree_node.hpp>
Public Types | |
enum | { GETID =(decl_node) = 0, GETID =(decl_node) = 0, GETID =(decl_node) = 0, GETID =(decl_node) = 0 } |
visitor enum More... | |
Public Types inherited from decl_node | |
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 | |
var_decl (unsigned int i) | |
constructor More... | |
void | visit (tree_node_visitor *const v) const override |
Redefinition of get_kind_text. More... | |
Public Member Functions inherited from decl_node | |
decl_node (unsigned int i) | |
Constructor. 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... | |
Public Member Functions inherited from attr | |
virtual | ~attr () |
Destructor. More... | |
void | add (const TreeVocabularyTokenTypes_TokenEnum a) |
Add an attribute to list of attribute. More... | |
bool | is_constructor () const |
Return true if there is TOK_CONSTRUCTOR in the list of attributes. More... | |
bool | is_destructor () const |
Return true if there is TOK_DESTRUCTOR in the list of attributes. More... | |
bool | is_member () const |
Return true if there is TOK_MEMBER in the list of attributes. More... | |
bool | is_call () const |
returns true if there is a TOK_CALL in the list of attributes More... | |
bool | is_new () const |
returns true if there is a TOK_NEW in the list of attributes More... | |
bool | is_public () const |
returns true if there is a TOK_PUBLIC in the list of attributes More... | |
bool | is_private () const |
returns true if there is a TOK_PRIVATE in the list of attributes More... | |
bool | is_protected () const |
returns true if there is a TOK_PROTECTED in the list of attributes More... | |
bool | is_bitfield () const |
returns true if there is a TOK_BITFIELD in the list of attributes More... | |
Data Fields | |
int | use_tmpl |
use_tmpl indicates whether or not (and how) a template was expanded for this VAR_DECL. More... | |
bool | static_static_flag |
to manage C++ code with static member More... | |
bool | static_flag |
to manage standard static attribute More... | |
bool | extern_flag |
a variable can be extern More... | |
bool | addr_taken |
True when we are able to prove that its address is taken and escape from a the function in which is defined. More... | |
bool | addr_not_taken |
True when we are able to prove that its address is not taken and do not escape. More... | |
tree_nodeRef | init |
init field holds the value to initialize a variable to. More... | |
tree_nodeRef | size |
size field holds the size of datum, in bits. More... | |
unsigned int | algn |
algn field holds the alignment required for the datum, in bits. More... | |
int | used |
used is nonzero if the name is used in its scope (macro TREE_USED) More... | |
bool | register_flag |
register_flag means declared 'register' (macro DECL_REGISTER) More... | |
bool | readonly_flag |
readonly_flag means readonly parameter (macro TREE_READONLY) More... | |
std::string | bit_values |
for each bit of the var_decl tells if it is equal to U,X,0,1 meaningful only in case the variable is readonly More... | |
tree_nodeRef | smt_ann |
symbol_memory_tag annotation More... | |
CustomUnorderedSet< tree_nodeRef > | defs |
The set of gimple node which writes this variable. More... | |
CustomUnorderedSet< tree_nodeRef > | uses |
The set of gimple node which read this variable. More... | |
CustomUnorderedSet< tree_nodeRef > | addressings |
The set of gimple node which addresses this variable. More... | |
Data Fields inherited from decl_node | |
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... | |
Data Fields inherited from attr | |
CustomOrderedSet< TreeVocabularyTokenTypes_TokenEnum > | list_attr |
list of TOKEN, represented as int, associated to the tree_node 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 label_decl tree node.
The tree walker structure of this node is: #(TOK_VAR_DECL decl_node attr (TOK_STATIC TOK_STATIC | TOK_STATIC | TOK_EXTERN)? (init)? (size)? algn used (TOK_REGISTER)?)
Definition at line 5659 of file tree_node.hpp.
anonymous enum |
|
explicit |
constructor
Definition at line 1506 of file tree_node.cpp.
|
overridevirtual |
Redefinition of get_kind_text.
Redefinition of get_kind. virtual function used to traverse the tree_node data structure.
v | is a reference to the tree_node visitor class |
Reimplemented from attr.
Definition at line 1521 of file tree_node.cpp.
References ALL_VISIT, init, size, smt_ann, VISIT_MEMBER, and VISIT_SC.
Referenced by type_pack_expansion::visit(), expr_pack_expansion::visit(), target_mem_ref::visit(), target_mem_ref461::visit(), type_argument_pack::visit(), nontype_argument_pack::visit(), vector_cst::visit(), and vector_type::visit().
bool var_decl::addr_not_taken |
True when we are able to prove that its address is not taken and do not escape.
It is defined by LLVM/CLANG and it refers mainly to alloca type variables
Definition at line 5690 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
bool var_decl::addr_taken |
True when we are able to prove that its address is taken and escape from a the function in which is defined.
Defined by LLVM/CLANG and it refers mainly to alloca type variables
Definition at line 5686 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
CustomUnorderedSet<tree_nodeRef> var_decl::addressings |
The set of gimple node which addresses this variable.
Definition at line 5746 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
unsigned int var_decl::algn |
algn field holds the alignment required for the datum, in bits.
(macro DECL_ALIGN)
Definition at line 5710 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
std::string var_decl::bit_values |
for each bit of the var_decl tells if it is equal to U,X,0,1 meaningful only in case the variable is readonly
Definition at line 5732 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
CustomUnorderedSet<tree_nodeRef> var_decl::defs |
The set of gimple node which writes this variable.
Definition at line 5740 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
bool var_decl::extern_flag |
a variable can be extern
Definition at line 5681 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
tree_nodeRef var_decl::init |
init field holds the value to initialize a variable to.
(macro DECL_INITIAL)
Definition at line 5698 of file tree_node.hpp.
Referenced by visit(), and raw_writer::write_when_not_null_point_to().
bool var_decl::readonly_flag |
readonly_flag means readonly parameter (macro TREE_READONLY)
Definition at line 5728 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
bool var_decl::register_flag |
register_flag means declared 'register' (macro DECL_REGISTER)
Definition at line 5722 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
tree_nodeRef var_decl::size |
size field holds the size of datum, in bits.
(macro DECL_SIZE)
Definition at line 5704 of file tree_node.hpp.
Referenced by visit(), and raw_writer::write_when_not_null_point_to().
tree_nodeRef var_decl::smt_ann |
symbol_memory_tag annotation
Definition at line 5737 of file tree_node.hpp.
Referenced by visit(), and raw_writer::write_when_not_null_point_to().
bool var_decl::static_flag |
to manage standard static attribute
Definition at line 5678 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
bool var_decl::static_static_flag |
to manage C++ code with static member
Definition at line 5675 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
int var_decl::use_tmpl |
use_tmpl indicates whether or not (and how) a template was expanded for this VAR_DECL.
0=normal declaration, e.g. int min (int, int); 1=implicit template instantiation 2=explicit template specialization, e.g. int min<int> (int, int); 3=explicit template instantiation, e.g. template int min<int> (int, int);
Definition at line 5672 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
int var_decl::used |
used is nonzero if the name is used in its scope (macro TREE_USED)
Definition at line 5716 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().
CustomUnorderedSet<tree_nodeRef> var_decl::uses |
The set of gimple node which read this variable.
Definition at line 5743 of file tree_node.hpp.
Referenced by raw_writer::write_when_not_null_point_to().