8359057: AbstractInterpreter::is_not_reached returns incorrectly with invokedynamic

Reviewed-by: vlivanov
This commit is contained in:
Matias Saavedra Silva 2025-10-22 21:06:25 +00:00
parent 4377e7c9e8
commit 45e145fac2

View File

@ -258,7 +258,8 @@ bool AbstractInterpreter::is_not_reached(const methodHandle& method, int bci) {
case Bytecodes::_invokedynamic: {
assert(invoke_bc.has_index_u4(code), "sanity");
int method_index = invoke_bc.get_index_u4(code);
return cpool->resolved_indy_entry_at(method_index)->is_resolved();
bool is_resolved = cpool->resolved_indy_entry_at(method_index)->is_resolved();
return !is_resolved;
}
case Bytecodes::_invokevirtual: // fall-through
case Bytecodes::_invokeinterface: // fall-through