33 catch(
const char *
err)
40 catch(
const std::string &
err)
62 error() <<
"error: expected type" <<
eom;
66 type=symbol_expr.
type();
109 if(parameters.empty() || !parameters.front().get_this())
115 parameters.insert(parameters.begin(),
a0);
158 for(
auto &
param : parameters)
163 if(
param.has_default_value())
201 else if(type.
id()==
"cpp-cast-operator")
204 else if(type.
id()==
"cpp-template-type")
228 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...
const exprt & size() const
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
const parameterst & parameters() const
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)
Base class for all expressions.
typet & type()
Return the type of the expression.
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
void set(const irep_idt &name, const irep_idt &value)
const irep_idt & id() const
irept & add(const irep_idt &name)
source_locationt source_location
message_handlert & get_message_handler()
The type of an expression, extends irept.
const typet & subtype() const
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)
C++ Language Type Checking.
C++ Language Type Checking.
bool simplify(exprt &expr, const namespacet &ns)
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.