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 It's interesting tests weren't failing with that. Maybe one can add asserts... But I don't see which wouldn't be quite expensive. We could check that after the first argument, if it's a receiver, both the `cc` and `cc_ro` are the same? But I fear I'm a bit overspecializing an assert for this exact mistake that will probably never happen again. But thanks for fixing anyway. And happy to see I'm not crazy. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/2185#issuecomment-4082540683
