|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
Base interface for Jimple AST. More...
#include <jimple_ast.h>
Public Member Functions | |
| void | dump () const |
| Prints the contents into the the stdout. | |
| virtual void | from_json (const json &)=0 |
| Initializes the current instance by parsing a JSON. | |
| virtual std::string | to_string () const =0 |
| Converts the object into a string. | |
Public Attributes | |
| int | line_location = -1 |
| instruction location | |
Static Protected Member Functions | |
| static symbolt | create_jimple_symbolt (const type2tc &t, const std::string &module, const std::string &name, const std::string &id, const std::string function_name="") |
| creates a symbol with the default characteristics | |
| static symbolt | get_temp_symbol (const type2tc &t, const std::string &class_name, const std::string &function_name) |
| Create a temporary variable to be used. | |
| static symbolt | get_allocation_function () |
| Get the allocation function symbol. | |
| static symbolt | get_lengthof_function () |
| Get the esbmc_get_object_size symbol. | |
| static std::string | get_method_name (std::string class_name, std::string function_name) |
| Get the unique method name. | |
| static std::string | get_symbol_name (std::string class_name, std::string function_name, std::string symbol) |
| Get the symbol name id. | |
| static locationt | get_location (const std::string &module, const std::string function_name="") |
| initialize a location for the symbol | |
Base interface for Jimple AST.
|
inlinestaticprotected |
creates a symbol with the default characteristics
TODO: Right now, we are setting it as C mode. In time, we should convert it to Jimple. By using C mode, we don't have to worry about typecast and primitives for now.
We still need to create every intrinsic type and variable for JVM
|
inline |
Prints the contents into the the stdout.
|
pure virtual |
Initializes the current instance by parsing a JSON.
| json | The json object relative to the structure |
Implemented in jimple_assertion, jimple_assignment, jimple_binop, jimple_cast, jimple_class_field, jimple_constant, jimple_declaration, jimple_deref, jimple_expr_invoke, jimple_file, jimple_full_method_body, jimple_goto, jimple_identity, jimple_if, jimple_invoke, jimple_label, jimple_lengthof, jimple_method, jimple_modifiers, jimple_new, jimple_newarray, jimple_nondet, jimple_static_member, jimple_symbol, jimple_type, jimple_virtual_invoke, and jimple_virtual_member.
|
inlinestaticprotected |
Get the allocation function symbol.
This is going to be the function to be called for new and newarray calls
|
inlinestaticprotected |
Get the esbmc_get_object_size symbol.
This is going to be the function to be called for lengthof
|
inlinestaticprotected |
initialize a location for the symbol
|
inlinestaticprotected |
Get the unique method name.
This is the full id for the method,
In jimple this will mean class_name:function_name
| class_name | |
| function_name |
|
inlinestaticprotected |
Get the symbol name id.
Note: Jimple is already in SSA form
| class_name | |
| function_name | |
| symbol |
|
inlinestaticprotected |
Create a temporary variable to be used.
| t | type of the variable |
| class_name | class package to the variable |
| function_name | function where the variable is going to be created |
|
pure virtual |
Converts the object into a string.
Implemented in jimple_assertion, jimple_assignment, jimple_binop, jimple_cast, jimple_class_field, jimple_constant, jimple_declaration, jimple_deref, jimple_expr_invoke, jimple_file, jimple_full_method_body, jimple_goto, jimple_identity, jimple_if, jimple_invoke, jimple_label, jimple_lengthof, jimple_method, jimple_modifiers, jimple_new, jimple_newarray, jimple_nondet, jimple_static_member, jimple_symbol, jimple_type, jimple_virtual_invoke, and jimple_virtual_member.
| int jimple_ast::line_location = -1 |
instruction location