RFR: 8359057: AbstractInterpreter::is_not_reached returns incorrectly with invokedynamic

Vladimir Ivanov vlivanov at openjdk.org
Mon Oct 20 20:49:02 UTC 2025


On Mon, 20 Oct 2025 20:29:11 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:

> This is a trivial change to return the output of `AbstractInterpreter::is_not_reached` in the invokedynamic case to its behavior before [JDK-8301995](https://bugs.openjdk.org/browse/JDK-8301995). Verified with tier 1-5 tests.

src/hotspot/share/interpreter/abstractInterpreter.cpp line 261:

> 259:         assert(invoke_bc.has_index_u4(code), "sanity");
> 260:         int method_index = invoke_bc.get_index_u4(code);
> 261:         return !cpool->resolved_indy_entry_at(method_index)->is_resolved();

IMO it's hard to read. I recommend to shape it as follows:

bool is_resolved = cpool->resolved_indy_entry_at(method_index)->is_resolved();
return !is_resolved;

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27904#discussion_r2446082678


More information about the hotspot-runtime-dev mailing list