1/*******************************************************************\
3Module: C++ Language Type Checking
5Author: Daniel Kroening, kroening@cs.cmu.edu
7\*******************************************************************/
23 out <<
"Declarators:" <<
'\n';
34 // We name any anon struct/unions according to the first
35 // declarator. No need to do anon enums, which get
36 // a name based on the enum elements.
47 d.front().name().is_simple_name())
49 // Anon struct/unions without declarator are pretty
50 // useless, but still possible.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
const declaratorst & declarators() const
void output(std::ostream &out) const
const cpp_storage_spect & storage_spec() const
std::vector< cpp_declaratort > declaratorst
template_typet & template_type()
void name_anon_struct_union()
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
typet & type()
Return the type of the expression.
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
const irept & find(const irep_idt &name) const
void set(const irep_idt &name, const irep_idt &value)
const irep_idt & id() const
The type of an expression, extends irept.
C++ Language Type Checking.
const std::string & id2string(const irep_idt &d)
const type_with_subtypest & to_type_with_subtypes(const typet &type)