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

This pull request has now been integrated.

Changeset: 540dab02
Author:    Tobias Hartmann <[email protected]>
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

Reply via email to