41 else if(t.
id()==ID_abstract)
46 else if(t.
id()==ID_merged_type)
65 if(get_is_enum_constant())
66 out <<
" is_enum_constant";
69 if(get_is_parameter())
70 out <<
" is_parameter";
74 out <<
" is_register";
75 if(get_is_thread_local())
76 out <<
" is_thread_local";
81 if(get_is_static_assert())
82 out <<
" is_static_assert";
87 for(
const auto &declarator : declarators())
88 out <<
"Declarator: " << declarator.pretty() <<
"\n";
100 if(p->
id()==ID_pointer || p->
id()==ID_array ||
101 p->
id()==ID_vector || p->
id()==ID_c_bit_field ||
102 p->
id()==ID_block_pointer || p->
id()==ID_code)
104 else if(p->
id()==ID_merged_type)
108 p=&(p->subtypes().back());
129 symbol.
type=full_type(declarator);
133 symbol.
is_type=get_is_typedef();
136 symbol.
is_macro=get_is_typedef() || get_is_enum_constant();
150 symbol.
type.
set(ID_C_inlined,
true);
164 else if(get_is_extern())
174 (get_is_global() || get_is_static());
178 get_is_thread_local();
182 (!get_is_global() && !get_is_extern()) ||
183 (get_is_global() && get_is_static()) ||
The type of an expression.
irep_idt name
The unique identifier.
struct configt::ansi_ct ansi_c
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
exprt value
Initial value of symbol.
void to_symbol(const ansi_c_declaratort &, symbolt &symbol) const
irep_idt pretty_name
Language-specific display name.
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
typet full_type(const ansi_c_declaratort &) const
const irep_idt & id() const
irep_idt get_base_name() const
void set_base_name(const irep_idt &base_name)
const irep_idt & get(const irep_namet &name) const
irep_idt get_name() const
Base class for tree-like data structures with sharing.
const source_locationt & source_location() const
void output(std::ostream &) const
typet type
Type of symbol.
source_locationt location
Source code location of definition of symbol.
irep_idt base_name
Base (non-scoped) name.
const source_locationt & source_location() const
ANSI-CC Language Type Checking.
source_locationt & add_source_location()
const typet & subtype() const
void set(const irep_namet &name, const irep_idt &value)