28 goto_program(goto_program),
36 for(
const goto_programt::instructiont &instruction :
39 if(!instruction.is_assign())
77 const typet &op_type=op.type();
124 const typet *target_type,
const typet *source_type)
const 126 while(target_type->
id()==ID_pointer)
128 bool direct_subtypes_at_least_as_const=
133 if(!direct_subtypes_at_least_as_const)
136 target_type=&target_type->
subtype();
137 source_type=&source_type->
subtype();
164 const typet &type_more_const,
const typet &type_compare)
const 167 const c_qualifierst more_constant_qualifiers(type_more_const);
The type of an expression.
bool base_type_eq(const typet &type1, const typet &type2, const namespacet &ns)
instructionst instructions
The list of instructions in the goto program.
const goto_programt & goto_program
const code_assignt & to_code_assign(const codet &code)
const irep_idt & id() const
bool does_type_preserve_const_correctness(const typet *target_type, const typet *source_type) const
A recursive check that handles when assigning a source value to a target, is the assignment a loss of...
bool operator()() const
A naive analysis to look for casts that remove const-ness from pointers.
bool does_expr_lose_const(const exprt &expr) const
Search the expression tree to look for any children that have the same base type, but a less strict c...
A specialization of goto_program_templatet over goto programs in which instructions have codet type...
Base class for all expressions.
bool is_type_at_least_as_const_as(const typet &type_more_const, const typet &type_compare) const
A simple check to check the type_more_const is at least as const as type compare. ...
does_remove_constt(const goto_programt &goto_program, const namespacet &ns)
A naive analysis to look for casts that remove const-ness from pointers.
const typet & subtype() const