[MVT] vbox throws a CCE

forax at univ-mlv.fr forax at univ-mlv.fr
Thu Aug 24 15:31:31 UTC 2017


Ok, found,

VBOX should take a class reference if you read the spec but takes a value class reference in the current implementation.
So if instead of
  mv.visitTypeInsn(VBOX, "mvt/Test");
i use
  mv.visitTypeInsn(VBOX, ";Qmvt/Test$Value;");

it works !

Rémi

----- Mail original -----
> De: "Frederic Parain" <frederic.parain at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "valhalla-dev" <valhalla-dev at openjdk.java.net>
> Envoyé: Jeudi 24 Août 2017 01:08:13
> Objet: Re: [MVT] vbox throws a CCE

> Remi,
> 
> Could you send the classfile?
> 
> Thank you,
> 
> Fred
> 
>> On Aug 23, 2017, at 18:40, Remi Forax <forax at univ-mlv.fr> wrote:
>> 
>> When i try to execute this code:
>> 
>> public final class Test {
>>  private final int value;
>> 
>>  public java.lang.String toString();
>>    Code:
>>       0: aload_0
>>       1: getfield      #11                 // Field value:I
>>       4: invokedynamic #23,  0             // InvokeDynamic
>>       #0:makeConcatWithConstants:(I)Ljava/lang/String;
>>       9: areturn
>> 
>>  public static void main(java.lang.String[]);
>>    Code:
>>       0: vdefault      #27                 // class ";QTest;"
>>       3: iconst_3
>>       4: vwithfield    #28                 // Field ";QTest;".value:I
>>       7: vstore        1
>>       9: getstatic     #34                 // Field
>>       java/lang/System.out:Ljava/io/PrintStream;
>>      12: vload         1
>>      14: vbox          #2                  // class Test
>>      17: invokevirtual #40                 // Method
>>      java/io/PrintStream.println:(Ljava/lang/Object;)V
>>      20: return
>> }
>> 
>> with this command line:
>> java -Xverify:none -XX:+EnableMVT Test
>> 
>> i get this exception:
>> Exception in thread "main" java.lang.ClassCastException: vbox not from value
>> type
>> 	at Test.main(Unknown Source)
>> 
>> This is not clear for me why ?
>> 
>> cheers,
> > Rémi


More information about the valhalla-dev mailing list