22 if(expr.
id()==ID_code)
25 if(expr.
id()==ID_typecast &&
26 expr.
type().
id()==ID_pointer)
38 "String literals should have been converted to constant globals "
39 "before typecheck_expr");
41 if(expr.
id()==ID_symbol)
43 else if(expr.
id()==ID_side_effect)
46 if(statement==ID_java_new)
48 else if(statement==ID_java_new_array)
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 irep_idt & id() const
void typecheck_type(typet &)
void typecheck_expr_symbol(symbol_exprt &)
void typecheck_expr_java_new(side_effect_exprt &)
void typecheck_code(codet &)
virtual void typecheck_expr(exprt &expr)
void typecheck_expr_java_new_array(side_effect_exprt &)
symbol_table_baset & symbol_table
An expression containing a side effect.
const irep_idt & get_statement() const
Expression to hold a symbol (variable)
const irep_idt & get_identifier() const
const symbolt & lookup_ref(const irep_idt &name) const
Find a symbol in the symbol table for read-only access.
typet type
Type of symbol.
The type of an expression, extends irept.
#define Forall_operands(it, expr)
JAVA Bytecode Language Type Checking.
exprt make_clean_pointer_cast(const exprt &rawptr, const pointer_typet &target_type, const namespacet &ns)
Representation of a constant Java string.
bool can_cast_expr< java_string_literal_exprt >(const exprt &base)
API to expression classes for Pointers.
const pointer_typet & to_pointer_type(const typet &type)
Cast a typet to a pointer_typet.
#define PRECONDITION(CONDITION)
side_effect_exprt & to_side_effect_expr(exprt &expr)
const codet & to_code(const exprt &expr)
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.