Lines 6688-6702
Link Here
|
6688 |
" [pc: 0, pc: 96] local: delete index: 1 type: boolean\n" + |
6688 |
" [pc: 0, pc: 96] local: delete index: 1 type: boolean\n" + |
6689 |
" [pc: 5, pc: 96] local: s index: 2 type: java.lang.String\n" + |
6689 |
" [pc: 5, pc: 96] local: s index: 2 type: java.lang.String\n" + |
6690 |
" [pc: 13, pc: 96] local: buffer index: 3 type: java.lang.StringBuffer\n" + |
6690 |
" [pc: 13, pc: 96] local: buffer index: 3 type: java.lang.StringBuffer\n" + |
6691 |
" [pc: 24, pc: 59] local: datas index: 4 type: java.lang.String[]\n" + |
6691 |
" [pc: 24, pc: 79] local: datas index: 4 type: java.lang.String[]\n" + |
6692 |
" [pc: 62, pc: 79] local: datas index: 4 type: java.lang.String[]\n" + |
6692 |
" [pc: 34, pc: 79] local: data index: 5 type: java.lang.Object[]\n" + |
6693 |
" [pc: 34, pc: 59] local: data index: 5 type: java.lang.Object[]\n" + |
6693 |
" [pc: 51, pc: 62] local: e index: 6 type: java.lang.Exception\n" + |
6694 |
" [pc: 62, pc: 79] local: data index: 5 type: java.lang.Object[]\n" + |
|
|
6695 |
" [pc: 51, pc: 59] local: e index: 6 type: java.lang.Exception\n" + |
6696 |
" Stack map table: number of frames 8\n" + |
6694 |
" Stack map table: number of frames 8\n" + |
6697 |
" [pc: 49, full, stack: {java.lang.Exception}, locals: {X, int, java.lang.String, java.lang.StringBuffer, java.lang.String[], java.lang.Object[]}]\n" + |
6695 |
" [pc: 49, full, stack: {java.lang.Exception}, locals: {X, int, java.lang.String, java.lang.StringBuffer, java.lang.String[], java.lang.Object[]}]\n" + |
6698 |
" [pc: 59, chop 2 local(s)]\n" + |
6696 |
" [pc: 59, append: {java.lang.Exception}]\n" + |
6699 |
" [pc: 62, append: {java.lang.String[], java.lang.Object[]}]\n" + |
6697 |
" [pc: 62, chop 1 local(s)]\n" + |
6700 |
" [pc: 76, same]\n" + |
6698 |
" [pc: 76, same]\n" + |
6701 |
" [pc: 79, full, stack: {java.lang.Exception}, locals: {X, int, java.lang.String, java.lang.StringBuffer}]\n" + |
6699 |
" [pc: 79, full, stack: {java.lang.Exception}, locals: {X, int, java.lang.String, java.lang.StringBuffer}]\n" + |
6702 |
" [pc: 86, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n" + |
6700 |
" [pc: 86, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n" + |
Lines 7569-7574
Link Here
|
7569 |
} |
7567 |
} |
7570 |
} |
7568 |
} |
7571 |
|
7569 |
|
|
|
7570 |
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=303448 |
7571 |
//To check that code gen is not optimized for an if statement |
7572 |
//where a local variable's definite nullness or otherwise is known because of |
7573 |
//an earlier assert expression (inside finally context) |
7574 |
public void testBug339139() throws Exception { |
7575 |
this.runConformTest( |
7576 |
new String[] { |
7577 |
"X.java", |
7578 |
"public abstract class X {\n" + |
7579 |
" private static Object[] bar() {\n" + |
7580 |
" return null;\n" + |
7581 |
" }\n" + |
7582 |
" protected final Object foo() {\n" + |
7583 |
" Object[] tab = null;\n" + |
7584 |
" if(tab != null) {\n" + |
7585 |
" Object[] v = bar(); \n" + |
7586 |
" int length = tab.length;\n" + |
7587 |
" loop : for (int i = 0, max = v.length; i < max; i++) {\n" + |
7588 |
" Object o = v[i];\n" + |
7589 |
" if (o == null) continue loop;\n" + |
7590 |
" if(0 == length) {\n" + |
7591 |
" loop2 : for (int j = 0; j < length; j++) {\n" + |
7592 |
" Object o2 = null;\n" + |
7593 |
" for (int k = 0; k < length; k++) {\n" + |
7594 |
" if (o2 == tab[k]) {\n" + |
7595 |
" continue loop2;\n" + |
7596 |
" }\n" + |
7597 |
" }\n" + |
7598 |
" continue loop;\n" + |
7599 |
" }\n" + |
7600 |
" return o;\n" + |
7601 |
" }\n" + |
7602 |
" }\n" + |
7603 |
" }\n" + |
7604 |
" return null;\n" + |
7605 |
" }\n" + |
7606 |
"}\n", |
7607 |
}); // custom requestor |
7608 |
} |
7609 |
|
7572 |
public static Class testClass() { |
7610 |
public static Class testClass() { |
7573 |
return ConformTest.class; |
7611 |
return ConformTest.class; |
7574 |
} |
7612 |
} |