On Wed, 18 Mar 2026 13:20:33 GMT, Damon Fenacci <[email protected]> wrote:

>> `CompiledEntrySignature::initialize_from_fingerprint()` was building 
>> `_sig_cc` and `_sig_cc_ro` the same way, but for virtual methods with an 
>> inline‑type receiver they must differ: `_sig_cc` should include the 
>> receiver’s scalarized fields, while `_sig_cc_ro` should represent the 
>> receiver as a single `T_OBJECT`.
>> This change fixes `_sig_cc_ro` construction so that when the receiver is an 
>> inline type, its fields are skipped and a single object entry is emitted 
>> instead.
>> It also adds asserts for `_sig_cc_ro` as a regression test proved to be hard 
>> to isolate and the asserts trigger immediately with any test if the RO 
>> signature is wrong.
>> 
>> Tests: 
>> * Tier 1-3+
>> * Assert makes even build crash without fix
>
> Damon Fenacci has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   JDK-8377670: add receiver_handled flag

That's an idea. I'm not sure it's very useful. Also the `_sig_cc->last()._bt == 
_sig_cc_ro->last()._bt` part doesn't hold if the receiver is the only argument, 
does it? But overall, I'm not sure it's worth doing anything. Without this 
mistake in the first place, nobody would have asked for such a check. There is 
no reason to believe it could be reintroduced in the future.

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

PR Comment: https://git.openjdk.org/valhalla/pull/2185#issuecomment-4082798251

Reply via email to