462 rI, rI, rI, rI, rI, rI, rI, rI); 463 double res2 = test23Callee(rI, rI, rI, rI, rI, rI, 464 vt, vt, vt, vt, vt, vt, vt, vt, 465 rI, rI, rI, rI, rI, rI, rI, rI); 466 double res3 = 6*rI + 8*rI + 8*rI; 467 Asserts.assertEQ(res1, res2); 468 Asserts.assertEQ(res2, res3); 469 } 470 471 // Should not return a nullable value type as fields 472 @Test 473 public MyValue2.box test24() { 474 return null; 475 } 476 477 @DontCompile 478 public void test24_verifier(boolean warmup) { 479 MyValue2.box vt = test24(); 480 Asserts.assertEQ(vt, null); 481 } 482 } | 462 rI, rI, rI, rI, rI, rI, rI, rI); 463 double res2 = test23Callee(rI, rI, rI, rI, rI, rI, 464 vt, vt, vt, vt, vt, vt, vt, vt, 465 rI, rI, rI, rI, rI, rI, rI, rI); 466 double res3 = 6*rI + 8*rI + 8*rI; 467 Asserts.assertEQ(res1, res2); 468 Asserts.assertEQ(res2, res3); 469 } 470 471 // Should not return a nullable value type as fields 472 @Test 473 public MyValue2.box test24() { 474 return null; 475 } 476 477 @DontCompile 478 public void test24_verifier(boolean warmup) { 479 MyValue2.box vt = test24(); 480 Asserts.assertEQ(vt, null); 481 } 482 483 // Same as test24 but with control flow and inlining 484 @ForceInline 485 public MyValue2.box test26_callee(boolean b) { 486 if (b) { 487 return null; 488 } else { 489 return MyValue2.createWithFieldsInline(rI, true); 490 } 491 } 492 493 @Test 494 public MyValue2.box test26(boolean b) { 495 return test26_callee(b); 496 } 497 498 @DontCompile 499 public void test26_verifier(boolean warmup) { 500 MyValue2.box vt = test26(true); 501 Asserts.assertEQ(vt, null); 502 vt = test26(false); 503 Asserts.assertEQ(vt.hash(), MyValue2.createWithFieldsInline(rI, true).hash()); 504 } 505 } |