On Fri, 6 Mar 2026 04:13:43 GMT, Quan Anh Mai <[email protected]> wrote:
> Hi, > > Reflective construction of value object triggers assert in C2 because it does > not follow the normal object construction pattern and is technically UB > because we try to return a larval object from a method. I was told that this > is required for the construction of hidden classes, but to me it seems like > we put those restrictions on ourselves and shoot ourselves in the foot by > using these `Unsafe` hacks. > > This PR tries to fix this issue by letting the compiler know of these methods > which can return or accept larval objects. Note that this is pretty fragile, > and seemingly harmless changes to the code shape generated by the > `MethodHandle` mechanism can break it, which is a usual symptom of undefined > behaviour. > > Please take a look and leave your review, thanks a lot. This pull request has now been integrated. Changeset: 3c48db97 Author: Quan Anh Mai <[email protected]> URL: https://git.openjdk.org/valhalla/commit/3c48db97623c5fb433d9abc91a0d155adbed04c6 Stats: 102 lines in 10 files changed: 77 ins; 12 del; 13 mod 8378560: [lworld] Reflective construction of value object triggers assert in C2 Reviewed-by: chagedorn ------------- PR: https://git.openjdk.org/valhalla/pull/2204
