25 static irep_idt create_array_with_type_name =
26 "java::org.cprover.CProver.createArrayWithType:"
27 "(I[Ljava/lang/Object;)[Ljava/lang/Object;";
28 return create_array_with_type_name;
56 const symbolt &function_symbol =
59 const auto &length_argument = function_type.parameters().at(0);
61 length_argument.type()};
62 const auto &existing_array_argument = function_type.parameters().at(1);
64 existing_array_argument.
get_identifier(), existing_array_argument.type()};
67 function_type.parameters().at(1).type(),
73 const auto new_array_symbol_expr = new_array_symbol.
symbol_expr();
83 new_array_expr.copy_to_operands(length_argument_symbol_expr);
105 new_array_element_classid, old_array_element_classid));
110 return std::move(code_block);
A codet representing sequential composition of program statements.
void add(const codet &code)
A codet representing an assignment in the program.
A codet representing the declaration of a local variable.
codet representation of a "return from a function" statement.
Data structure for representing an arbitrary statement in a program.
Operator to dereference a pointer.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Extract member of struct or union.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
An expression containing a side effect.
Expression to hold a symbol (variable)
const irep_idt & get_identifier() const
The symbol table base class interface.
const symbolt & lookup_ref(const irep_idt &name) const
Find a symbol in the symbol table for read-only access.
class symbol_exprt symbol_expr() const
Produces a symbol_exprt for a symbol.
typet type
Type of symbol.
irep_idt get_create_array_with_type_name()
Returns the symbol name for org.cprover.CProver.createArrayWithType
codet create_array_with_type_body(const irep_idt &function_id, symbol_table_baset &symbol_table, message_handlert &message_handler)
Returns the internal implementation for org.cprover.CProver.createArrayWithType.
Implementation of CProver.createArrayWithType intrinsic.
symbolt & get_fresh_aux_symbol(const typet &type, const std::string &name_prefix, const std::string &basename_prefix, const source_locationt &source_location, const irep_idt &symbol_mode, const namespacet &ns, symbol_table_baset &symbol_table)
Installs a fresh-named symbol with respect to the given namespace ns with the requested name pattern ...
Fresh auxiliary symbol creation.
const std::string & id2string(const irep_idt &d)
signedbv_typet java_int_type()
#define JAVA_ARRAY_ELEMENT_CLASSID_FIELD_NAME
#define JAVA_ARRAY_DIMENSION_FIELD_NAME
API to expression classes for Pointers.
#define PRECONDITION(CONDITION)
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.