[lworld] Integrated: 8375086: [lworld] Implicit exception handling in inline-cache check is broken

Tobias Hartmann thartmann at openjdk.org
Tue Feb 3 08:27:45 UTC 2026


On Mon, 2 Feb 2026 13:58:20 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> We crash with a `SIGSEGV` instead of throwing a `NullPointerException` when passing a `null` receiver through an inline cache'd interface call site because the implicit null check that happens when doing the receiver type check in the unverified entry point of the nmethod is not working properly.
> 
> When `SharedRuntime::continuation_for_implicit_exception` checks where the `IMPLICIT_NULL` exception came from, it does not recognize the entry point:
> https://github.com/openjdk/valhalla/blob/55c80fedfcee5d3b113cdf38d64c1bcac8632c9a/src/hotspot/share/runtime/sharedRuntime.cpp#L1021-L1028
> 
> However, with the scalarized calling convention, we have two unverified entry points (`verified_entry_point` and `verified_inline_entry_point`). Both need to be handled in `nmethod::inlinecache_check_contains`.
> 
> Thanks,
> Tobias

This pull request has now been integrated.

Changeset: 540dab02
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.org/valhalla/commit/540dab026c3b09e4ed8fbec55c7907083494a7f5
Stats:     105 lines in 3 files changed: 102 ins; 2 del; 1 mod

8375086: [lworld] Implicit exception handling in inline-cache check is broken

Reviewed-by: chagedorn

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

PR: https://git.openjdk.org/valhalla/pull/2011


More information about the valhalla-dev mailing list