35 catch(
const char *
err)
42 catch(
const std::string &
err)
68 type=symbol_expr.
type();
113 class_object.get_sub().back().id() ==
"::",
"scope suffix expected");
125 if(parameters.empty() || !parameters.front().get_this())
131 parameters.insert(parameters.begin(),
a0);
174 for(
auto &
param : parameters)
179 if(
param.has_default_value())
217 else if(type.
id()==
"cpp-cast-operator")
220 else if(type.
id()==
"cpp-template-type")
244 type=symbol_expr.
type();
pointer_typet pointer_type(const typet &subtype)
const c_bit_field_typet & to_c_bit_field_type(const typet &type)
Cast a typet to a c_bit_field_typet.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
virtual void typecheck_vector_type(typet &type)
virtual void typecheck_c_bit_field_type(c_bit_field_typet &type)
virtual void typecheck_type(typet &type)
std::vector< parametert > parameterst
void typecheck_type(typet &) override
void typecheck_enum_type(typet &type)
void implicit_typecast(exprt &expr, const typet &type) override
void typecheck_compound_type(struct_union_typet &) override
void typecheck_expr(exprt &) override
exprt resolve(const cpp_namet &cpp_name, const cpp_typecheck_resolvet::wantt want, const cpp_typecheck_fargst &fargs, bool fail_with_exception=true)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
typet & type()
Return the type of the expression.
const source_locationt & source_location() const
Unbounded, signed integers (mathematical integers, not bitvectors)
There are a large number of kinds of tree structured or tree-like data in CPROVER.
bool get_bool(const irep_idt &name) const
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
const irept & find(const irep_idt &name) const
const irep_idt & get(const irep_idt &name) const
void set(const irep_idt &name, const irep_idt &value)
const irep_idt & id() const
irept & add(const irep_idt &name)
holds a combination of types
source_locationt source_location
message_handlert & get_message_handler()
Unbounded, signed rational numbers.
The type of an expression, extends irept.
source_locationt & add_source_location()
const source_locationt & source_location() const
void cpp_convert_plain_type(typet &type, message_handlert &message_handler)
cpp_namet & to_cpp_name(irept &cpp_name)
template_typet & to_template_type(typet &type)
C++ Language Type Checking.
C++ Language Type Checking.
void err(int eval, const char *fmt,...)
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
bool simplify(exprt &expr, const namespacet &ns)
#define CHECK_RETURN(CONDITION)
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions,...
#define PRECONDITION(CONDITION)
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.
const array_typet & to_array_type(const typet &type)
Cast a typet to an array_typet.
const struct_union_typet & to_struct_union_type(const typet &type)
Cast a typet to a struct_union_typet.
const type_with_subtypet & to_type_with_subtype(const typet &type)