The function `field_layout_selection` which is used to decide how layout the fields of class does not handle the static fields case explicitly.
Right now it depends on a subtle interaction with parsing and preloading classes where we have a short circuit for static field which means we do not add an InlineLayoutInfo for the static fields, which in turn makes the `field_layout_selection` think that this field is not a known value class and ends up using a reference.
This is both hard to understand and might cause bugs in the future. I suggest we add and explicit return LayoutKind::REFERENCE; when the field is static in `field_layout_selection`.
Right now it depends on a subtle interaction with parsing and preloading classes where we have a short circuit for static field which means we do not add an InlineLayoutInfo for the static fields, which in turn makes the `field_layout_selection` think that this field is not a known value class and ends up using a reference.
This is both hard to understand and might cause bugs in the future. I suggest we add and explicit return LayoutKind::REFERENCE; when the field is static in `field_layout_selection`.
- links to
-
Commit(lworld)
openjdk/valhalla/f92a0288
-
Review(lworld)
openjdk/valhalla/2160