Called by the abstract interpreter when an exception is thrown that is not (guaranteed to be) handled within the same method.
Called by the abstract interpreter when an exception is thrown that is not (guaranteed to be) handled within the same method.
If the original exception value is null
(/*E.g.*/throw null;
), then
the exception that is actually thrown is a new NullPointerException
. This
situation is, however, completely handled by OPAL and the exception value
is hence never null
.
The given value
, which is a value with computational type reference, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type reference, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type double, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type double, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type float, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type float, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type integer, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type integer, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type long, is returned
by the return instruction with the given pc
.
The given value
, which is a value with computational type long, is returned
by the return instruction with the given pc
.
Called when a return instruction with the given pc
is reached.
Called when a return instruction with the given pc
is reached.
In other words, when the method returns normally.
Records the program counters of all instructions that lead to a (ab)normal return from the method. I.e., every instruction that may throw an exception or causes a normal return from method may be recorded. Examples of instructions that may be recorded:
(X)return
,throw
,invoke(XXX)
,get|put(static|field)
,checkcast
,(a)new(array)
,... . Instructions such asswap
ordup(XXX)
, however, never directly lead to a method return (they will never result in an exception) and will not be recorded.If you are interested in recording the values use: RecordReturnedValues, RecordThrownExceptions.
Usage
This domain can be stacked on top of other traits that handle return instructions and abrupt method executions.