test/compiler/6689060/Test.java

Wed, 21 May 2008 10:45:07 -0700

author
kvn
date
Wed, 21 May 2008 10:45:07 -0700
changeset 598
885ed790ecf0
child 688
b0fe4deeb9fb
child 720
51ae48d8072f
permissions
-rw-r--r--

6695810: null oop passed to encode_heap_oop_not_null
Summary: fix several problems in C2 related to Escape Analysis and Compressed Oops.
Reviewed-by: never, jrose

kvn@598 1 /*
kvn@598 2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
kvn@598 3 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
kvn@598 4 *
kvn@598 5 *
kvn@598 6 *
kvn@598 7 *
kvn@598 8 *
kvn@598 9 *
kvn@598 10 *
kvn@598 11 *
kvn@598 12 *
kvn@598 13 *
kvn@598 14 *
kvn@598 15 *
kvn@598 16 *
kvn@598 17 *
kvn@598 18 *
kvn@598 19 *
kvn@598 20 *
kvn@598 21 *
kvn@598 22 *
kvn@598 23 */
kvn@598 24
kvn@598 25 /*
kvn@598 26 * @test
kvn@598 27 * @bug 6689060
kvn@598 28 * @summary Escape Analysis does not work with Compressed Oops
kvn@598 29 * @run main/othervm -Xbatch -XX:CompileCommand=exclude,Test.dummy -XX:+AggressiveOpts Test
kvn@598 30 */
kvn@598 31
kvn@598 32 import java.lang.reflect.Array;
kvn@598 33
kvn@598 34 class Point {
kvn@598 35 int x;
kvn@598 36 int y;
kvn@598 37 Point next;
kvn@598 38 int ax[];
kvn@598 39 int ay[];
kvn@598 40 Point pax[];
kvn@598 41 Point pay[];
kvn@598 42 public Point getNext() {
kvn@598 43 return next;
kvn@598 44 }
kvn@598 45 }
kvn@598 46
kvn@598 47 public class Test {
kvn@598 48
kvn@598 49 void dummy() {
kvn@598 50 // Empty method to verify correctness of DebugInfo.
kvn@598 51 // Use -XX:CompileCommand=exclude,Test.dummy
kvn@598 52 }
kvn@598 53
kvn@598 54 int ival(int i) {
kvn@598 55 return i*2;
kvn@598 56 }
kvn@598 57
kvn@598 58 int test80(int y, int l, int i) {
kvn@598 59 Point p = new Point();
kvn@598 60 p.ax = new int[2];
kvn@598 61 p.ay = new int[2];
kvn@598 62 int x = 3;
kvn@598 63 p.ax[0] = x;
kvn@598 64 p.ay[1] = 3 * x + y;
kvn@598 65 dummy();
kvn@598 66 return p.ax[0] * p.ay[1];
kvn@598 67 }
kvn@598 68
kvn@598 69 int test81(int y, int l, int i) {
kvn@598 70 Point p = new Point();
kvn@598 71 p.ax = new int[2];
kvn@598 72 p.ay = new int[2];
kvn@598 73 int x = 3;
kvn@598 74 p.ax[0] = x;
kvn@598 75 p.ay[1] = 3 * x + y;
kvn@598 76 dummy();
kvn@598 77 return p.ax[0] * p.ay[1];
kvn@598 78 }
kvn@598 79
kvn@598 80
kvn@598 81 int test44(int y) {
kvn@598 82 Point p1 = new Point();
kvn@598 83 p1.x = ival(3);
kvn@598 84 dummy();
kvn@598 85 p1.y = 3 * p1.x + y;
kvn@598 86 return p1.y;
kvn@598 87 }
kvn@598 88
kvn@598 89 int test43(int y) {
kvn@598 90 Point p1 = new Point();
kvn@598 91 if ( (y & 1) == 1 ) {
kvn@598 92 p1.x = ival(3);
kvn@598 93 } else {
kvn@598 94 p1.x = ival(5);
kvn@598 95 }
kvn@598 96 dummy();
kvn@598 97 p1.y = 3 * p1.x + y;
kvn@598 98 return p1.y;
kvn@598 99 }
kvn@598 100
kvn@598 101 int test42(int y) {
kvn@598 102 Point p1 = new Point();
kvn@598 103 p1.x = 3;
kvn@598 104 for (int i = 0; i < y; i++) {
kvn@598 105 if ( (i & 1) == 1 ) {
kvn@598 106 p1.x += 4;
kvn@598 107 }
kvn@598 108 }
kvn@598 109 p1.y = 3 * y + p1.x;
kvn@598 110 return p1.y;
kvn@598 111 }
kvn@598 112
kvn@598 113 int test40(int y) {
kvn@598 114 Point p1 = new Point();
kvn@598 115 if ( (y & 1) == 1 ) {
kvn@598 116 p1.x = 3;
kvn@598 117 } else {
kvn@598 118 p1.x = 5;
kvn@598 119 }
kvn@598 120 p1.y = 3 * p1.x + y;
kvn@598 121 return p1.y;
kvn@598 122 }
kvn@598 123
kvn@598 124 int test41(int y) {
kvn@598 125 Point p1 = new Point();
kvn@598 126 if ( (y & 1) == 1 ) {
kvn@598 127 p1.x += 4;
kvn@598 128 } else {
kvn@598 129 p1.x += 5;
kvn@598 130 }
kvn@598 131 p1.y = 3 * p1.x + y;
kvn@598 132 return p1.y;
kvn@598 133 }
kvn@598 134
kvn@598 135 Point test00(int y) {
kvn@598 136 int x = 3;
kvn@598 137 Point p = new Point();
kvn@598 138 p.x = x;
kvn@598 139 p.y = 3 * x + y;
kvn@598 140 return p;
kvn@598 141 }
kvn@598 142
kvn@598 143 Point test01(int y) {
kvn@598 144 int x = 3;
kvn@598 145 Point p = new Point();
kvn@598 146 p.x = x;
kvn@598 147 p.y = 3 * x + y;
kvn@598 148 dummy();
kvn@598 149 return p;
kvn@598 150 }
kvn@598 151
kvn@598 152 Point test02(int y) {
kvn@598 153 int x = 3;
kvn@598 154 Point p1 = null;
kvn@598 155 for (int i = 0; i < y; i++) {
kvn@598 156 Point p2 = new Point();
kvn@598 157 p2.x = x;
kvn@598 158 p2.y = 3 * y + x;
kvn@598 159 p2.next = p1;
kvn@598 160 p1 = p2;
kvn@598 161 }
kvn@598 162 return p1;
kvn@598 163 }
kvn@598 164
kvn@598 165 Point test03(int y) {
kvn@598 166 int x = 3;
kvn@598 167 Point p1 = null;
kvn@598 168 for (int i = 0; i < y; i++) {
kvn@598 169 Point p2 = new Point();
kvn@598 170 p2.x = x;
kvn@598 171 p2.y = 3 * y + x;
kvn@598 172 p2.next = p1;
kvn@598 173 p1 = p2;
kvn@598 174 }
kvn@598 175 dummy();
kvn@598 176 return p1;
kvn@598 177 }
kvn@598 178
kvn@598 179 Point test04(int y) {
kvn@598 180 int x = 3;
kvn@598 181 Point p1 = null;
kvn@598 182 for (int i = 0; i < y; i++) {
kvn@598 183 Point p2 = new Point();
kvn@598 184 p2.x = x;
kvn@598 185 p2.y = 3 * y + x;
kvn@598 186 p2.next = p1;
kvn@598 187 dummy();
kvn@598 188 p1 = p2;
kvn@598 189 }
kvn@598 190 return p1;
kvn@598 191 }
kvn@598 192
kvn@598 193 int test05(int y) {
kvn@598 194 int x = 3;
kvn@598 195 Point p1 = new Point();
kvn@598 196 for (int i = 0; i < y; i++) {
kvn@598 197 Point p2 = new Point();
kvn@598 198 p2.x = x;
kvn@598 199 p2.y = 3 * y + x;
kvn@598 200 p1.next = p2;
kvn@598 201 p1 = p2;
kvn@598 202 }
kvn@598 203 return p1.y;
kvn@598 204 }
kvn@598 205
kvn@598 206 int test0(int y) {
kvn@598 207 int x = 3;
kvn@598 208 Point p = new Point();
kvn@598 209 p.x = x;
kvn@598 210 p.y = 3 * x + y;
kvn@598 211 dummy();
kvn@598 212 return p.x * p.y;
kvn@598 213 }
kvn@598 214
kvn@598 215 int test1(int y) {
kvn@598 216 Point p = new Point();
kvn@598 217 if ( (y & 1) == 1 ) {
kvn@598 218 p = new Point(); // Kill previous
kvn@598 219 }
kvn@598 220 int x = 3;
kvn@598 221 p.x = x;
kvn@598 222 p.y = 3 * x + y;
kvn@598 223 dummy();
kvn@598 224 return p.x * p.y;
kvn@598 225 }
kvn@598 226
kvn@598 227 int test2(int y) {
kvn@598 228 Point p1 = new Point();
kvn@598 229 Point p2 = new Point();
kvn@598 230 p1.x = 3;
kvn@598 231 p2.x = 4;
kvn@598 232 p1.y = 3 * p2.x + y;
kvn@598 233 p2.y = 3 * p1.x + y;
kvn@598 234 dummy();
kvn@598 235 return p1.y * p2.y;
kvn@598 236 }
kvn@598 237
kvn@598 238 int test3(int y, Point p1) {
kvn@598 239 Point p2 = new Point();
kvn@598 240 p1.x = 3;
kvn@598 241 p2.x = 4;
kvn@598 242 p1.y = 3 * p2.x + y;
kvn@598 243 p2.y = 3 * p1.x + y;
kvn@598 244 dummy();
kvn@598 245 return p1.y * p2.y;
kvn@598 246 }
kvn@598 247
kvn@598 248 int test4(int y) {
kvn@598 249 Point p1 = new Point();
kvn@598 250 Point p2 = new Point();
kvn@598 251 if ( (y & 1) == 1 ) {
kvn@598 252 p1.x = 3;
kvn@598 253 p2.x = 4;
kvn@598 254 } else {
kvn@598 255 p1.x = 5;
kvn@598 256 p2.x = 6;
kvn@598 257 }
kvn@598 258 p1.y = 3 * p2.x + y;
kvn@598 259 p2.y = 3 * p1.x + y;
kvn@598 260 dummy();
kvn@598 261 return p1.y * p2.y;
kvn@598 262 }
kvn@598 263
kvn@598 264 int test5(int y, Point p1) {
kvn@598 265 Point p2 = new Point();
kvn@598 266 if ( (y & 1) == 1 ) {
kvn@598 267 p1.x = 3;
kvn@598 268 p2.x = 4;
kvn@598 269 } else {
kvn@598 270 p1.x = 5;
kvn@598 271 p2.x = 6;
kvn@598 272 }
kvn@598 273 p1.y = 3 * p2.x + y;
kvn@598 274 p2.y = 3 * p1.x + y;
kvn@598 275 dummy();
kvn@598 276 return p1.y * p2.y;
kvn@598 277 }
kvn@598 278
kvn@598 279 int test6(int y) {
kvn@598 280 Point p1 = new Point();
kvn@598 281 Point p2 = new Point();
kvn@598 282 p1.next = p2;
kvn@598 283 if ( (y & 1) == 1 ) {
kvn@598 284 p1.x = 3;
kvn@598 285 p1.getNext().x = 4;
kvn@598 286 } else {
kvn@598 287 p1.x = 5;
kvn@598 288 p1.getNext().x = 6;
kvn@598 289 }
kvn@598 290 p1.y = 3 * p2.x + y;
kvn@598 291 p2.y = 3 * p1.x + y;
kvn@598 292 dummy();
kvn@598 293 return p1.y * p2.y;
kvn@598 294 }
kvn@598 295
kvn@598 296 int test7(int y, Point p1) {
kvn@598 297 Point p2 = new Point();
kvn@598 298 p1.next = p2;
kvn@598 299 if ( (y & 1) == 1 ) {
kvn@598 300 p1.x = 3;
kvn@598 301 p1.getNext().x = 4;
kvn@598 302 } else {
kvn@598 303 p1.x = 5;
kvn@598 304 p1.getNext().x = 6;
kvn@598 305 }
kvn@598 306 p1.y = 3 * p2.x + y;
kvn@598 307 p2.y = 3 * p1.x + y;
kvn@598 308 dummy();
kvn@598 309 return p1.y * p2.y;
kvn@598 310 }
kvn@598 311
kvn@598 312 int test8(int y, int l, int i) {
kvn@598 313 Point p = new Point();
kvn@598 314 p.ax = new int[l];
kvn@598 315 p.ay = new int[l];
kvn@598 316 int x = 3;
kvn@598 317 p.ax[i] = x;
kvn@598 318 p.ay[i] = 3 * x + y;
kvn@598 319 dummy();
kvn@598 320 return p.ax[i] * p.ay[i];
kvn@598 321 }
kvn@598 322
kvn@598 323 int test9(int y, int l, int i) {
kvn@598 324 Point p = new Point();
kvn@598 325 p.pax = new Point[l];
kvn@598 326 p.pay = new Point[l];
kvn@598 327 p.pax[i] = new Point();
kvn@598 328 p.pay[i] = new Point();
kvn@598 329 p.pax[i].x = 3;
kvn@598 330 p.pay[i].x = 4;
kvn@598 331 p.pax[i].y = 3 * p.pay[i].x + y;
kvn@598 332 p.pay[i].y = 3 * p.pax[i].x + y;
kvn@598 333 dummy();
kvn@598 334 return p.pax[i].y * p.pay[i].y;
kvn@598 335 }
kvn@598 336
kvn@598 337 int test10(int y, int l, int i, Class cls) {
kvn@598 338 Point p = new Point();
kvn@598 339 try {
kvn@598 340 p.pax = (Point[])Array.newInstance(cls, l);
kvn@598 341 p.pax[i] = (Point)cls.newInstance();
kvn@598 342 }
kvn@598 343 catch(java.lang.InstantiationException ex) {
kvn@598 344 return 0;
kvn@598 345 }
kvn@598 346 catch(java.lang.IllegalAccessException ex) {
kvn@598 347 return 0;
kvn@598 348 }
kvn@598 349 p.pax[i].x = 3;
kvn@598 350 p.pax[i].y = 3 * p.pax[i].x + y;
kvn@598 351 dummy();
kvn@598 352 return p.pax[i].x * p.pax[i].y;
kvn@598 353 }
kvn@598 354
kvn@598 355 int test11(int y) {
kvn@598 356 Point p1 = new Point();
kvn@598 357 Point p2 = new Point();
kvn@598 358 p1.next = p2;
kvn@598 359 if ( (y & 1) == 1 ) {
kvn@598 360 p1.x = 3;
kvn@598 361 p1.next.x = 4;
kvn@598 362 } else {
kvn@598 363 p1.x = 5;
kvn@598 364 p1.next.x = 6;
kvn@598 365 }
kvn@598 366 p1.y = 3 * p1.next.x + y;
kvn@598 367 p1.next.y = 3 * p1.x + y;
kvn@598 368 dummy();
kvn@598 369 return p1.y * p1.next.y;
kvn@598 370 }
kvn@598 371
kvn@598 372 int test12(int y) {
kvn@598 373 Point p1 = new Point();
kvn@598 374 p1.next = p1;
kvn@598 375 if ( (y & 1) == 1 ) {
kvn@598 376 p1.x = 3;
kvn@598 377 p1.next.x = 4;
kvn@598 378 } else {
kvn@598 379 p1.x = 5;
kvn@598 380 p1.next.x = 6;
kvn@598 381 }
kvn@598 382 p1.y = 3 * p1.next.x + y;
kvn@598 383 p1.next.y = 3 * p1.x + y;
kvn@598 384 dummy();
kvn@598 385 return p1.y * p1.next.y;
kvn@598 386 }
kvn@598 387
kvn@598 388
kvn@598 389 public static void main(String args[]) {
kvn@598 390 Test tsr = new Test();
kvn@598 391 Point p = new Point();
kvn@598 392 Point ptmp = p;
kvn@598 393 Class cls = Point.class;
kvn@598 394 int y = 0;
kvn@598 395 for (int i=0; i<10000; i++) {
kvn@598 396 ptmp.next = tsr.test00(1);
kvn@598 397 ptmp.next = tsr.test01(1);
kvn@598 398 ptmp.next = tsr.test02(1);
kvn@598 399 ptmp.next = tsr.test03(1);
kvn@598 400 ptmp.next = tsr.test04(1);
kvn@598 401
kvn@598 402 y = tsr.test05(1);
kvn@598 403
kvn@598 404 y = tsr.test80(y, 1, 0);
kvn@598 405 y = tsr.test81(y, 1, 0);
kvn@598 406
kvn@598 407 y = tsr.test44(y);
kvn@598 408 y = tsr.test43(y);
kvn@598 409 y = tsr.test42(y);
kvn@598 410 y = tsr.test40(y);
kvn@598 411 y = tsr.test41(y);
kvn@598 412
kvn@598 413 y = tsr.test0(y);
kvn@598 414 y = tsr.test1(y);
kvn@598 415 y = tsr.test2(y);
kvn@598 416 y = tsr.test3(y, p);
kvn@598 417 y = tsr.test4(y);
kvn@598 418 y = tsr.test5(y, p);
kvn@598 419 y = tsr.test6(y);
kvn@598 420 y = tsr.test7(y, p);
kvn@598 421 y = tsr.test8(y, 1, 0);
kvn@598 422 y = tsr.test9(y, 1, 0);
kvn@598 423 y = tsr.test10(y, 1, 0, cls);
kvn@598 424 y = tsr.test11(y);
kvn@598 425 y = tsr.test12(y);
kvn@598 426 }
kvn@598 427 for (int i=0; i<10000; i++) {
kvn@598 428 ptmp.next = tsr.test00(1);
kvn@598 429 ptmp.next = tsr.test01(1);
kvn@598 430 ptmp.next = tsr.test02(1);
kvn@598 431 ptmp.next = tsr.test03(1);
kvn@598 432 ptmp.next = tsr.test04(1);
kvn@598 433
kvn@598 434 y = tsr.test05(1);
kvn@598 435
kvn@598 436 y = tsr.test80(y, 1, 0);
kvn@598 437 y = tsr.test81(y, 1, 0);
kvn@598 438
kvn@598 439 y = tsr.test44(y);
kvn@598 440 y = tsr.test43(y);
kvn@598 441 y = tsr.test42(y);
kvn@598 442 y = tsr.test40(y);
kvn@598 443 y = tsr.test41(y);
kvn@598 444
kvn@598 445 y = tsr.test0(y);
kvn@598 446 y = tsr.test1(y);
kvn@598 447 y = tsr.test2(y);
kvn@598 448 y = tsr.test3(y, p);
kvn@598 449 y = tsr.test4(y);
kvn@598 450 y = tsr.test5(y, p);
kvn@598 451 y = tsr.test6(y);
kvn@598 452 y = tsr.test7(y, p);
kvn@598 453 y = tsr.test8(y, 1, 0);
kvn@598 454 y = tsr.test9(y, 1, 0);
kvn@598 455 y = tsr.test10(y, 1, 0, cls);
kvn@598 456 y = tsr.test11(y);
kvn@598 457 y = tsr.test12(y);
kvn@598 458 }
kvn@598 459 for (int i=0; i<10000; i++) {
kvn@598 460 ptmp.next = tsr.test00(1);
kvn@598 461 ptmp.next = tsr.test01(1);
kvn@598 462 ptmp.next = tsr.test02(1);
kvn@598 463 ptmp.next = tsr.test03(1);
kvn@598 464 ptmp.next = tsr.test04(1);
kvn@598 465
kvn@598 466 y = tsr.test05(1);
kvn@598 467
kvn@598 468 y = tsr.test80(y, 1, 0);
kvn@598 469 y = tsr.test81(y, 1, 0);
kvn@598 470
kvn@598 471 y = tsr.test44(y);
kvn@598 472 y = tsr.test43(y);
kvn@598 473 y = tsr.test42(y);
kvn@598 474 y = tsr.test40(y);
kvn@598 475 y = tsr.test41(y);
kvn@598 476
kvn@598 477 y = tsr.test0(y);
kvn@598 478 y = tsr.test1(y);
kvn@598 479 y = tsr.test2(y);
kvn@598 480 y = tsr.test3(y, p);
kvn@598 481 y = tsr.test4(y);
kvn@598 482 y = tsr.test5(y, p);
kvn@598 483 y = tsr.test6(y);
kvn@598 484 y = tsr.test7(y, p);
kvn@598 485 y = tsr.test8(y, 1, 0);
kvn@598 486 y = tsr.test9(y, 1, 0);
kvn@598 487 y = tsr.test10(y, 1, 0, cls);
kvn@598 488 y = tsr.test11(y);
kvn@598 489 y = tsr.test12(y);
kvn@598 490 }
kvn@598 491
kvn@598 492 int z = 0;
kvn@598 493 y = tsr.test80(0, 1, 0);
kvn@598 494 z += y;
kvn@598 495 System.out.println("After 'test80' y=" + y);
kvn@598 496 y = tsr.test81(0, 1, 0);
kvn@598 497 z += y;
kvn@598 498 System.out.println("After 'test81' y=" + y);
kvn@598 499
kvn@598 500 y = tsr.test44(0);
kvn@598 501 z += y;
kvn@598 502 System.out.println("After 'test44' y=" + y);
kvn@598 503 y = tsr.test43(0);
kvn@598 504 z += y;
kvn@598 505 System.out.println("After 'test43' y=" + y);
kvn@598 506 y = tsr.test42(0);
kvn@598 507 z += y;
kvn@598 508 System.out.println("After 'test42' y=" + y);
kvn@598 509 y = tsr.test40(0);
kvn@598 510 z += y;
kvn@598 511 System.out.println("After 'test40' y=" + y);
kvn@598 512 y = tsr.test41(0);
kvn@598 513 z += y;
kvn@598 514 System.out.println("After 'test41' y=" + y);
kvn@598 515
kvn@598 516 ptmp.next = tsr.test00(1);
kvn@598 517 z += y;
kvn@598 518 System.out.println("After 'test00' p.y=" + ptmp.next.y);
kvn@598 519 ptmp.next = tsr.test01(1);
kvn@598 520 z += y;
kvn@598 521 System.out.println("After 'test01' p.y=" + ptmp.next.y);
kvn@598 522 ptmp.next = tsr.test02(1);
kvn@598 523 z += y;
kvn@598 524 System.out.println("After 'test02' p.y=" + ptmp.next.y);
kvn@598 525 ptmp.next = tsr.test03(1);
kvn@598 526 z += y;
kvn@598 527 System.out.println("After 'test03' p.y=" + ptmp.next.y);
kvn@598 528 ptmp.next = tsr.test04(1);
kvn@598 529 z += y;
kvn@598 530 System.out.println("After 'test04' p.y=" + ptmp.next.y);
kvn@598 531
kvn@598 532 y = tsr.test05(1);
kvn@598 533 z += y;
kvn@598 534 System.out.println("After 'test05' y=" + y);
kvn@598 535
kvn@598 536 y = tsr.test0(0);
kvn@598 537 z += y;
kvn@598 538 System.out.println("After 'test0' y=" + y);
kvn@598 539 y = tsr.test1(0);
kvn@598 540 z += y;
kvn@598 541 System.out.println("After 'test1' y=" + y);
kvn@598 542 y = tsr.test2(0);
kvn@598 543 z += y;
kvn@598 544 System.out.println("After 'test2' y=" + y);
kvn@598 545 y = tsr.test3(0, new Point());
kvn@598 546 z += y;
kvn@598 547 System.out.println("After 'test3' y=" + y);
kvn@598 548 y = tsr.test4(0);
kvn@598 549 z += y;
kvn@598 550 System.out.println("After 'test4' y=" + y);
kvn@598 551 y = tsr.test5(0, new Point());
kvn@598 552 z += y;
kvn@598 553 System.out.println("After 'test5' y=" + y);
kvn@598 554 y = tsr.test6(0);
kvn@598 555 z += y;
kvn@598 556 System.out.println("After 'test6' y=" + y);
kvn@598 557 y = tsr.test7(0, new Point());
kvn@598 558 z += y;
kvn@598 559 System.out.println("After 'test7' y=" + y);
kvn@598 560 y = tsr.test8(0, 1, 0);
kvn@598 561 z += y;
kvn@598 562 System.out.println("After 'test8' y=" + y);
kvn@598 563 y = tsr.test9(0, 1, 0);
kvn@598 564 z += y;
kvn@598 565 System.out.println("After 'test9' y=" + y);
kvn@598 566 y = tsr.test10(0, 1, 0, cls);
kvn@598 567 z += y;
kvn@598 568 System.out.println("After 'test10' y=" + y);
kvn@598 569 y = tsr.test11(0);
kvn@598 570 z += y;
kvn@598 571 System.out.println("After 'test11' y=" + y);
kvn@598 572 y = tsr.test12(0);
kvn@598 573 z += y;
kvn@598 574 System.out.println("After 'test12' y=" + y);
kvn@598 575 System.out.println("Sum of y =" + z);
kvn@598 576 }
kvn@598 577 }

mercurial