mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-12 19:35:24 +00:00
6700102: c2 assertion "counter_changed,"failed dependencies, but counter didn't change")" with AggressiveOpts
Bytecode Escape Analyzer does not have the check for the case described in 6389127. Reviewed-by: never
This commit is contained in:
parent
3a4ea9a986
commit
9bcba384cb
@ -218,6 +218,13 @@ void BCEscapeAnalyzer::invoke(StateInfo &state, Bytecodes::Code code, ciMethod*
|
||||
ciInstanceKlass* callee_holder = ciEnv::get_instance_klass_for_declared_method_holder(holder);
|
||||
ciInstanceKlass* actual_recv = callee_holder;
|
||||
|
||||
// some methods are obviously bindable without any type checks so
|
||||
// convert them directly to an invokespecial.
|
||||
if (target->is_loaded() && !target->is_abstract() &&
|
||||
target->can_be_statically_bound() && code == Bytecodes::_invokevirtual) {
|
||||
code = Bytecodes::_invokespecial;
|
||||
}
|
||||
|
||||
// compute size of arguments
|
||||
int arg_size = target->arg_size();
|
||||
if (!target->is_loaded() && code == Bytecodes::_invokestatic) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user