|
| code_ifthenelset | throw_exception (const exprt &cond, const source_locationt &original_loc, const irep_idt &exc_name) |
| | Creates a class stub for exc_name and generates a conditional GOTO such that exc_name is thrown when cond is met.
|
| |
| codet | check_array_access (const exprt &array_struct, const exprt &idx, const source_locationt &original_loc) |
| | Checks whether the array access array_struct[idx] is out-of-bounds, and throws ArrayIndexOutofBoundsException/generates an assertion if necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
|
| |
| codet | check_arithmetic_exception (const exprt &denominator, const source_locationt &original_loc) |
| | Checks whether there is a division by zero and throws ArithmeticException if necessary.
|
| |
| codet | check_null_dereference (const exprt &expr, const source_locationt &original_loc) |
| | Checks whether expr is null and throws NullPointerException/ generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
|
| |
| code_ifthenelset | check_class_cast (const exprt &tested_expr, const struct_tag_typet &target_type, const source_locationt &original_loc) |
| | Checks whether class1 is an instance of class2 and throws ClassCastException/generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
|
| |
| codet | check_array_length (const exprt &length, const source_locationt &original_loc) |
| | Checks whether length >= 0 and throws NegativeArraySizeException/ generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
|
| |
| void | instrument_code (codet &code) |
| | Augments code with instrumentation in the form of either assertions or runtime exceptions.
|
| |
| void | add_expr_instrumentation (code_blockt &block, const exprt &expr) |
| | Checks whether expr requires instrumentation, and if so adds it to block.
|
| |
| void | prepend_instrumentation (codet &code, code_blockt &instrumentation) |
| | Appends code to instrumentation and overwrites reference code with the augmented block if instrumentation is non-empty.
|
| |
| std::optional< codet > | instrument_expr (const exprt &expr) |
| | Computes the instrumentation for expr in the form of either assertions or runtime exceptions.
|
| |
◆ java_bytecode_instrumentt()
◆ add_expr_instrumentation()
Checks whether expr requires instrumentation, and if so adds it to block.
- Parameters
-
| [out] | block | block where instrumentation will be added |
| expr | expression to instrument |
Definition at line 308 of file java_bytecode_instrument.cpp.
◆ check_arithmetic_exception()
Checks whether there is a division by zero and throws ArithmeticException if necessary.
Exceptions are thrown when the throw_runtime_exceptions flag is set.
- Returns
- Based on the value of the flag
throw_runtime_exceptions, it returns code that either throws an ArithmeticException or asserts a nonzero denominator.
Definition at line 137 of file java_bytecode_instrument.cpp.
◆ check_array_access()
Checks whether the array access array_struct[idx] is out-of-bounds, and throws ArrayIndexOutofBoundsException/generates an assertion if necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
Otherwise, assertions are emitted.
- Parameters
-
| array_struct | array being accessed |
| idx | index into the array |
| original_loc | source location in the original code |
- Returns
- Based on the value of the flag
throw_runtime_exceptions, it returns code that either throws an ArrayIndexOutPfBoundsException or emits an assertion checking the array access
Definition at line 168 of file java_bytecode_instrument.cpp.
◆ check_array_length()
Checks whether length >= 0 and throws NegativeArraySizeException/ generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
Otherwise, assertions are emitted.
- Parameters
-
| length | the checked length |
| original_loc | source location in the original code |
- Returns
- Based on the value of the flag
throw_runtime_exceptions, it returns code that either throws an NegativeArraySizeException or emits an assertion checking the subtype relation
Definition at line 284 of file java_bytecode_instrument.cpp.
◆ check_class_cast()
Checks whether class1 is an instance of class2 and throws ClassCastException/generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
Otherwise, assertions are emitted.
- Parameters
-
| tested_expr | expression to test |
| target_type | type to test for |
| original_loc | source location in the original code |
- Returns
- Based on the value of the flag
throw_runtime_exceptions, it returns code that either throws an ClassCastException or emits an assertion checking the subtype relation
Definition at line 211 of file java_bytecode_instrument.cpp.
◆ check_null_dereference()
Checks whether expr is null and throws NullPointerException/ generates an assertion when necessary; Exceptions are thrown when the throw_runtime_exceptions flag is set.
Otherwise, assertions are emitted.
- Parameters
-
| expr | the checked expression |
| original_loc | source location in the original code |
- Returns
- Based on the value of the flag
throw_runtime_exceptions, it returns code that either throws an NullPointerException or emits an assertion checking the subtype relation
Definition at line 255 of file java_bytecode_instrument.cpp.
◆ instrument_code()
| void java_bytecode_instrumentt::instrument_code |
( |
codet & |
code | ) |
|
|
protected |
Augments code with instrumentation in the form of either assertions or runtime exceptions.
- Parameters
-
| code | the expression to be instrumented |
Definition at line 342 of file java_bytecode_instrument.cpp.
◆ instrument_expr()
| std::optional< codet > java_bytecode_instrumentt::instrument_expr |
( |
const exprt & |
expr | ) |
|
|
protected |
Computes the instrumentation for expr in the form of either assertions or runtime exceptions.
- Parameters
-
| expr | the expression for which we compute instrumentation |
- Returns
- The instrumentation for
expr if required
Definition at line 451 of file java_bytecode_instrument.cpp.
◆ operator()()
| void java_bytecode_instrumentt::operator() |
( |
codet & |
code | ) |
|
◆ prepend_instrumentation()
| void java_bytecode_instrumentt::prepend_instrumentation |
( |
codet & |
code, |
|
|
code_blockt & |
instrumentation |
|
) |
| |
|
protected |
Appends code to instrumentation and overwrites reference code with the augmented block if instrumentation is non-empty.
- Parameters
-
| [in,out] | code | code being instrumented |
| instrumentation | instrumentation code block to prepend |
Definition at line 325 of file java_bytecode_instrument.cpp.
◆ throw_exception()
Creates a class stub for exc_name and generates a conditional GOTO such that exc_name is thrown when cond is met.
- Parameters
-
| cond | condition to be met in order to throw an exception |
| original_loc | source location in the original program |
| exc_name | the name of the exception to be thrown |
- Returns
- Returns the code initialising the throwing the exception
Definition at line 93 of file java_bytecode_instrument.cpp.
◆ message_handler
◆ symbol_table
◆ throw_runtime_exceptions
| const bool java_bytecode_instrumentt::throw_runtime_exceptions |
|
protected |
The documentation for this class was generated from the following file: