JDK-8269275 : [lworld] Withfield instruction fails to verify when operand stack contains LPrimitiveClass;
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: repo-valhalla
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2021-06-24
  • Updated: 2021-06-24
  • Resolved: 2021-06-24
Related Reports
Blocks :  
Duplicate :  
Description
The following code (generated via wip javac)

static X$Point makePoint(int, int);
    descriptor: (II)QX$Point;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
         0: defaultvalue  #1                  // class X$Point
         3: checkcast     #3                  // class X$Point
         6: astore_2
         7: iload_0
         8: aload_2
         9: swap
        10: withfield     #4                  // Field x:I
        13: astore_2
        14: iload_1
        15: aload_2
        16: swap
        17: withfield     #8                  // Field y:I
        20: astore_2
        21: aload_2
        22: checkcast     #11                 // class "QX$Point;"
        25: areturn
      LineNumberTable:
        line 5: 0
        line 6: 7
        line 7: 14
        line 8: 21
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      26     0     x   I
            0      26     1     y   I
            7      19     2     p   LX$Point;

fails to verify at @bci 10 : Type 'X$Point' (current frame, stack[0]) is not assignable to inline type


Comments
Due to JIRA glitch, we have ended up with two tickets.
24-06-2021