JAVA Bytecode Language Conversion. More...
#include "java_bytecode_convert_method_class.h"#include <util/arith_tools.h>#include <util/bitvector_expr.h>#include <util/c_types.h>#include <util/expr_initializer.h>#include <util/floatbv_expr.h>#include <util/ieee_float.h>#include <util/invariant.h>#include <util/namespace.h>#include <util/prefix.h>#include <util/prefix_filter.h>#include <util/std_expr.h>#include <util/symbol_table_base.h>#include <util/threeval.h>#include <goto-programs/resolve_inherited_component.h>#include <analyses/uncaught_exceptions_analysis.h>#include "bytecode_info.h"#include "java_bytecode_convert_method.h"#include "java_expr.h"#include "java_static_initializers.h"#include "java_string_library_preprocess.h"#include "java_string_literal_expr.h"#include "java_types.h"#include "java_utils.h"#include "lambda_synthesis.h"#include "pattern.h"#include <algorithm>#include <limits>Go to the source code of this file.
ftype, finds a new new name for each parameter and renames them in ftype.parameters() as well as in the symbol_table. expr to make it compatible with array type corresponding to type_char (see java_array_type(const char)). JAVA Bytecode Language Conversion.
Definition in file java_bytecode_convert_method.cpp.
Definition at line 2207 of file java_bytecode_convert_method.cpp.
Iterates through the parameters of the function type ftype, finds a new new name for each parameter and renames them in ftype.parameters() as well as in the symbol_table.
Assigns parameter names (side-effects on ftype) to function stub parameters, which are initially nameless as method conversion hasn't happened. Also creates symbols in symbol_table.
Definition at line 62 of file java_bytecode_convert_method.cpp.
Add typecast if necessary to expr to make it compatible with array type corresponding to type_char (see java_array_type(const char)).
Character 'b' is used both for byte and boolean arrays, so if expr is a boolean array and we are using a b operation we can skip the typecast.
Definition at line 2981 of file java_bytecode_convert_method.cpp.
Definition at line 94 of file java_bytecode_convert_method.cpp.
Extracts the names of parameters from the local variable table in the method, and uses it to construct sensible names/identifiers for the parameters in the parameters on the java_method_typet and the external variables vector.
Definition at line 422 of file java_bytecode_convert_method.cpp.
Definition at line 507 of file java_bytecode_convert_method.cpp.
Definition at line 945 of file java_bytecode_convert_method.cpp.
Definition at line 999 of file java_bytecode_convert_method.cpp.
Definition at line 630 of file java_bytecode_convert_method.cpp.
Definition at line 413 of file java_bytecode_convert_method.cpp.
Definition at line 119 of file java_bytecode_convert_method.cpp.
Definition at line 3281 of file java_bytecode_convert_method.cpp.
This creates a method symbol in the symtab, but doesn't actually perform method conversion just yet.
The caller should call java_bytecode_convert_method later to give the symbol/method a body.
Definition at line 299 of file java_bytecode_convert_method.cpp.
This uses a cut-down version of the logic in java_bytecode_convert_methodt::convert to initialize symbols for the parameters and update the parameters in the type of method_symbol with names read from the local_variable_table read from the bytecode.
Definition at line 3203 of file java_bytecode_convert_method.cpp.
Returns the member type for a method, based on signature or descriptor.
Definition at line 229 of file java_bytecode_convert_method.cpp.
Build a member exprt for accessing a specific field that may come from a base class.
Definition at line 656 of file java_bytecode_convert_method.cpp.