On Mon, 2 Feb 2026 13:58:20 GMT, Tobias Hartmann <[email protected]> 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

Reply via email to