anewarray #3 // class "QV;"
... where the V class has not yet been loaded. However, ciObjectFactory stores unloaded classes using their unadorned (?) names -- i.e., any leading "L" or "Q" are stripped. This leads to confusion when both "Q" and "L" references are made to the same unloaded class:
static Object[] test5(int n) {
if (n == 0) {
return null;
} else if (n == 1) {
MyValue5.box[] arr = new MyValue5.box[10];
arr[1] = MyValue5.make(22345);
return arr;
} else {
MyValue5[] arr = new MyValue5[10];
arr[1] = MyValue5.make(12345);
return arr;
}
}
The above method would cause C1 to assert.
A proper fix would be to revert the
- duplicates
-
JDK-8215478 [lworld] C2 should handle unloaded ciValueKlass and ciValueArrayKlass
-
- Closed
-
- relates to
-
JDK-8214689 [lworld][c1] aaload cannot handle unloaded class
-
- Resolved
-