[lworld] RFR: 8375086: [lworld] Implicit exception handling in inline-cache check is broken
Christian Hagedorn
chagedorn at openjdk.org
Mon Feb 2 14:09:31 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
That looks good to me.
-------------
Marked as reviewed by chagedorn (Committer).
PR Review: https://git.openjdk.org/valhalla/pull/2011#pullrequestreview-3739625348
More information about the valhalla-dev
mailing list