Lines 25-31
Link Here
|
25 |
|
25 |
|
26 |
static { |
26 |
static { |
27 |
// TESTS_NAMES = new String[] { "test000" }; |
27 |
// TESTS_NAMES = new String[] { "test000" }; |
28 |
// TESTS_NUMBERS = new int[] { 34 }; |
28 |
// TESTS_NUMBERS = new int[] { 41, 43, 44, 45, 46 }; |
29 |
// TESTS_RANGE = new int[] { 11, -1 }; |
29 |
// TESTS_RANGE = new int[] { 11, -1 }; |
30 |
} |
30 |
} |
31 |
public TryStatementTest(String name) { |
31 |
public TryStatementTest(String name) { |
Lines 1924-1937
Link Here
|
1924 |
}, |
1924 |
}, |
1925 |
"done"); |
1925 |
"done"); |
1926 |
|
1926 |
|
1927 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
1927 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
|
|
1928 |
String expectedOutput = !compilerOptions.inlineJsrBytecode |
1928 |
? " // Method descriptor #15 (Z)V\n" + |
1929 |
? " // Method descriptor #15 (Z)V\n" + |
|
|
1930 |
" // Stack: 2, Locals: 5\n" + |
1931 |
" public void foo(boolean b);\n" + |
1932 |
" 0 iload_1 [b]\n" + |
1933 |
" 1 ifeq 10\n" + |
1934 |
" 4 iconst_0\n" + |
1935 |
" 5 istore_2 [i]\n" + |
1936 |
" 6 jsr 23\n" + |
1937 |
" 9 return\n" + |
1938 |
" 10 aconst_null\n" + |
1939 |
" 11 astore_2 [o]\n" + |
1940 |
" 12 goto 6\n" + |
1941 |
" 15 astore 4\n" + |
1942 |
" 17 jsr 23\n" + |
1943 |
" 20 aload 4\n" + |
1944 |
" 22 athrow\n" + |
1945 |
" 23 astore_3\n" + |
1946 |
" 24 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1947 |
" 27 ldc <String \"done\"> [22]\n" + |
1948 |
" 29 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1949 |
" 32 ret 3\n" + |
1950 |
" Exception Table:\n" + |
1951 |
" [pc: 0, pc: 9] -> 15 when : any\n" + |
1952 |
" [pc: 10, pc: 15] -> 15 when : any\n" + |
1953 |
" Line numbers:\n" + |
1954 |
" [pc: 0, line: 4]\n" + |
1955 |
" [pc: 4, line: 5]\n" + |
1956 |
" [pc: 6, line: 6]\n" + |
1957 |
" [pc: 10, line: 8]\n" + |
1958 |
" [pc: 12, line: 9]\n" + |
1959 |
" [pc: 15, line: 11]\n" + |
1960 |
" [pc: 20, line: 13]\n" + |
1961 |
" [pc: 23, line: 11]\n" + |
1962 |
" [pc: 24, line: 12]\n" + |
1963 |
" [pc: 32, line: 13]\n" + |
1964 |
" Local variable table:\n" + |
1965 |
" [pc: 0, pc: 34] local: this index: 0 type: X\n" + |
1966 |
" [pc: 0, pc: 34] local: b index: 1 type: boolean\n" + |
1967 |
" [pc: 6, pc: 10] local: i index: 2 type: int\n" + |
1968 |
" [pc: 12, pc: 15] local: o index: 2 type: java.lang.Object\n" |
1969 |
: null; |
1970 |
if (expectedOutput == null) { |
1971 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
1972 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
1929 |
" // Stack: 2, Locals: 4\n" + |
1973 |
" // Stack: 2, Locals: 4\n" + |
1930 |
" public void foo(boolean b);\n" + |
1974 |
" public void foo(boolean b);\n" + |
1931 |
" 0 iload_1 [b]\n" + |
1975 |
" 0 iload_1 [b]\n" + |
1932 |
" 1 ifeq 15\n" + |
1976 |
" 1 ifeq 15\n" + |
1933 |
" 4 iconst_0\n" + |
1977 |
" 4 iconst_0\n" + |
1934 |
" 5 istore_2\n" + |
1978 |
" 5 istore_2 [i]\n" + |
1935 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1979 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1936 |
" 9 ldc <String \"done\"> [22]\n" + |
1980 |
" 9 ldc <String \"done\"> [22]\n" + |
1937 |
" 11 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1981 |
" 11 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
Lines 1961-2007
Link Here
|
1961 |
" Local variable table:\n" + |
2005 |
" Local variable table:\n" + |
1962 |
" [pc: 0, pc: 31] local: this index: 0 type: X\n" + |
2006 |
" [pc: 0, pc: 31] local: this index: 0 type: X\n" + |
1963 |
" [pc: 0, pc: 31] local: b index: 1 type: boolean\n" + |
2007 |
" [pc: 0, pc: 31] local: b index: 1 type: boolean\n" + |
1964 |
" [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n" |
2008 |
" [pc: 6, pc: 15] local: i index: 2 type: int\n" + |
1965 |
: " // Method descriptor #15 (Z)V\n" + |
2009 |
" [pc: 17, pc: 20] local: o index: 2 type: java.lang.Object\n"; |
1966 |
" // Stack: 2, Locals: 5\n" + |
2010 |
} else { |
|
|
2011 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
2012 |
" // Stack: 2, Locals: 4\n" + |
1967 |
" public void foo(boolean b);\n" + |
2013 |
" public void foo(boolean b);\n" + |
1968 |
" 0 iload_1 [b]\n" + |
2014 |
" 0 iload_1 [b]\n" + |
1969 |
" 1 ifeq 10\n" + |
2015 |
" 1 ifeq 15\n" + |
1970 |
" 4 iconst_0\n" + |
2016 |
" 4 iconst_0\n" + |
1971 |
" 5 istore_2 [i]\n" + |
2017 |
" 5 istore_2 [i]\n" + |
1972 |
" 6 jsr 23\n" + |
2018 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1973 |
" 9 return\n" + |
2019 |
" 9 ldc <String \"done\"> [22]\n" + |
1974 |
" 10 aconst_null\n" + |
2020 |
" 11 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1975 |
" 11 astore_2 [o]\n" + |
2021 |
" 14 return\n" + |
1976 |
" 12 goto 6\n" + |
2022 |
" 15 aconst_null\n" + |
1977 |
" 15 astore 4\n" + |
2023 |
" 16 astore_2 [o]\n" + |
1978 |
" 17 jsr 23\n" + |
2024 |
" 17 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1979 |
" 20 aload 4\n" + |
2025 |
" 20 ldc <String \"done\"> [22]\n" + |
1980 |
" 22 athrow\n" + |
2026 |
" 22 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
1981 |
" 23 astore_3\n" + |
2027 |
" 25 return\n" + |
1982 |
" 24 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2028 |
" 26 astore_3\n" + |
1983 |
" 27 ldc <String \"done\"> [22]\n" + |
2029 |
" 27 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
1984 |
" 29 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2030 |
" 30 ldc <String \"done\"> [22]\n" + |
1985 |
" 32 ret 3\n" + |
2031 |
" 32 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
|
|
2032 |
" 35 aload_3\n" + |
2033 |
" 36 athrow\n" + |
1986 |
" Exception Table:\n" + |
2034 |
" Exception Table:\n" + |
1987 |
" [pc: 0, pc: 9] -> 15 when : any\n" + |
2035 |
" [pc: 0, pc: 6] -> 26 when : any\n" + |
1988 |
" [pc: 10, pc: 15] -> 15 when : any\n" + |
2036 |
" [pc: 15, pc: 17] -> 26 when : any\n" + |
1989 |
" Line numbers:\n" + |
2037 |
" Line numbers:\n" + |
1990 |
" [pc: 0, line: 4]\n" + |
2038 |
" [pc: 0, line: 4]\n" + |
1991 |
" [pc: 4, line: 5]\n" + |
2039 |
" [pc: 4, line: 5]\n" + |
1992 |
" [pc: 6, line: 6]\n" + |
2040 |
" [pc: 6, line: 12]\n" + |
1993 |
" [pc: 10, line: 8]\n" + |
2041 |
" [pc: 14, line: 6]\n" + |
1994 |
" [pc: 12, line: 9]\n" + |
2042 |
" [pc: 15, line: 8]\n" + |
1995 |
" [pc: 15, line: 11]\n" + |
2043 |
" [pc: 17, line: 12]\n" + |
1996 |
" [pc: 20, line: 13]\n" + |
2044 |
" [pc: 25, line: 9]\n" + |
1997 |
" [pc: 23, line: 11]\n" + |
2045 |
" [pc: 26, line: 11]\n" + |
1998 |
" [pc: 24, line: 12]\n" + |
2046 |
" [pc: 27, line: 12]\n" + |
1999 |
" [pc: 32, line: 13]\n" + |
2047 |
" [pc: 35, line: 13]\n" + |
2000 |
" Local variable table:\n" + |
2048 |
" Local variable table:\n" + |
2001 |
" [pc: 0, pc: 34] local: this index: 0 type: X\n" + |
2049 |
" [pc: 0, pc: 37] local: this index: 0 type: X\n" + |
2002 |
" [pc: 0, pc: 34] local: b index: 1 type: boolean\n" + |
2050 |
" [pc: 0, pc: 37] local: b index: 1 type: boolean\n" + |
2003 |
" [pc: 6, pc: 10] local: i index: 2 type: int\n" + |
2051 |
" [pc: 6, pc: 15] local: i index: 2 type: int\n" + |
2004 |
" [pc: 12, pc: 15] local: o index: 2 type: java.lang.Object\n"; |
2052 |
" [pc: 17, pc: 26] local: o index: 2 type: java.lang.Object\n" + |
|
|
2053 |
" Stack map table: number of frames 2\n" + |
2054 |
" [pc: 15, same]\n" + |
2055 |
" [pc: 26, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; |
2056 |
} |
2057 |
} |
2005 |
|
2058 |
|
2006 |
try { |
2059 |
try { |
2007 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
2060 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
Lines 2044-2055
Link Here
|
2044 |
}, |
2097 |
}, |
2045 |
"done"); |
2098 |
"done"); |
2046 |
|
2099 |
|
2047 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
2100 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
|
|
2101 |
String expectedOutput = !compilerOptions.inlineJsrBytecode |
2048 |
? " // Method descriptor #15 (Z)V\n" + |
2102 |
? " // Method descriptor #15 (Z)V\n" + |
|
|
2103 |
" // Stack: 2, Locals: 5\n" + |
2104 |
" public void foo(boolean b);\n" + |
2105 |
" 0 iconst_0\n" + |
2106 |
" 1 istore_2 [i]\n" + |
2107 |
" 2 jsr 18\n" + |
2108 |
" 5 return\n" + |
2109 |
" 6 astore_2 [e]\n" + |
2110 |
" 7 goto 2\n" + |
2111 |
" 10 astore 4\n" + |
2112 |
" 12 jsr 18\n" + |
2113 |
" 15 aload 4\n" + |
2114 |
" 17 athrow\n" + |
2115 |
" 18 astore_3\n" + |
2116 |
" 19 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2117 |
" 22 ldc <String \"done\"> [22]\n" + |
2118 |
" 24 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2119 |
" 27 ret 3\n" + |
2120 |
" Exception Table:\n" + |
2121 |
" [pc: 0, pc: 5] -> 6 when : java.lang.Exception\n" + |
2122 |
" [pc: 0, pc: 5] -> 10 when : any\n" + |
2123 |
" [pc: 6, pc: 10] -> 10 when : any\n" + |
2124 |
" Line numbers:\n" + |
2125 |
" [pc: 0, line: 4]\n" + |
2126 |
" [pc: 2, line: 5]\n" + |
2127 |
" [pc: 6, line: 6]\n" + |
2128 |
" [pc: 7, line: 7]\n" + |
2129 |
" [pc: 10, line: 8]\n" + |
2130 |
" [pc: 15, line: 10]\n" + |
2131 |
" [pc: 18, line: 8]\n" + |
2132 |
" [pc: 19, line: 9]\n" + |
2133 |
" [pc: 27, line: 10]\n" + |
2134 |
" Local variable table:\n" + |
2135 |
" [pc: 0, pc: 29] local: this index: 0 type: X\n" + |
2136 |
" [pc: 0, pc: 29] local: b index: 1 type: boolean\n" + |
2137 |
" [pc: 2, pc: 6] local: i index: 2 type: int\n" + |
2138 |
" [pc: 7, pc: 10] local: e index: 2 type: java.lang.Exception\n" |
2139 |
: null; |
2140 |
if (expectedOutput == null) { |
2141 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
2142 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
2049 |
" // Stack: 2, Locals: 4\n" + |
2143 |
" // Stack: 2, Locals: 4\n" + |
2050 |
" public void foo(boolean b);\n" + |
2144 |
" public void foo(boolean b);\n" + |
2051 |
" 0 iconst_0\n" + |
2145 |
" 0 iconst_0\n" + |
2052 |
" 1 istore_2\n" + |
2146 |
" 1 istore_2 [i]\n" + |
2053 |
" 2 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2147 |
" 2 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2054 |
" 5 ldc <String \"done\"> [22]\n" + |
2148 |
" 5 ldc <String \"done\"> [22]\n" + |
2055 |
" 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2149 |
" 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
Lines 2078-2121
Link Here
|
2078 |
" Local variable table:\n" + |
2172 |
" Local variable table:\n" + |
2079 |
" [pc: 0, pc: 26] local: this index: 0 type: X\n" + |
2173 |
" [pc: 0, pc: 26] local: this index: 0 type: X\n" + |
2080 |
" [pc: 0, pc: 26] local: b index: 1 type: boolean\n" + |
2174 |
" [pc: 0, pc: 26] local: b index: 1 type: boolean\n" + |
2081 |
" [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n" |
2175 |
" [pc: 2, pc: 11] local: i index: 2 type: int\n" + |
2082 |
: " // Method descriptor #15 (Z)V\n" + |
2176 |
" [pc: 12, pc: 15] local: e index: 2 type: java.lang.Exception\n"; |
2083 |
" // Stack: 2, Locals: 5\n" + |
2177 |
} else { |
|
|
2178 |
expectedOutput = " // Method descriptor #15 (Z)V\n" + |
2179 |
" // Stack: 2, Locals: 4\n" + |
2084 |
" public void foo(boolean b);\n" + |
2180 |
" public void foo(boolean b);\n" + |
2085 |
" 0 iconst_0\n" + |
2181 |
" 0 iconst_0\n" + |
2086 |
" 1 istore_2 [i]\n" + |
2182 |
" 1 istore_2 [i]\n" + |
2087 |
" 2 jsr 18\n" + |
2183 |
" 2 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2088 |
" 5 return\n" + |
2184 |
" 5 ldc <String \"done\"> [22]\n" + |
2089 |
" 6 astore_2 [e]\n" + |
2185 |
" 7 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2090 |
" 7 goto 2\n" + |
2186 |
" 10 return\n" + |
2091 |
" 10 astore 4\n" + |
2187 |
" 11 astore_2 [e]\n" + |
2092 |
" 12 jsr 18\n" + |
2188 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2093 |
" 15 aload 4\n" + |
2189 |
" 15 ldc <String \"done\"> [22]\n" + |
2094 |
" 17 athrow\n" + |
2190 |
" 17 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2095 |
" 18 astore_3\n" + |
2191 |
" 20 return\n" + |
2096 |
" 19 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2192 |
" 21 astore_3\n" + |
2097 |
" 22 ldc <String \"done\"> [22]\n" + |
2193 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [16]\n" + |
2098 |
" 24 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
2194 |
" 25 ldc <String \"done\"> [22]\n" + |
2099 |
" 27 ret 3\n" + |
2195 |
" 27 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]\n" + |
|
|
2196 |
" 30 aload_3\n" + |
2197 |
" 31 athrow\n" + |
2100 |
" Exception Table:\n" + |
2198 |
" Exception Table:\n" + |
2101 |
" [pc: 0, pc: 5] -> 6 when : java.lang.Exception\n" + |
2199 |
" [pc: 0, pc: 2] -> 11 when : java.lang.Exception\n" + |
2102 |
" [pc: 0, pc: 5] -> 10 when : any\n" + |
2200 |
" [pc: 0, pc: 2] -> 21 when : any\n" + |
2103 |
" [pc: 6, pc: 10] -> 10 when : any\n" + |
2201 |
" [pc: 11, pc: 12] -> 21 when : any\n" + |
2104 |
" Line numbers:\n" + |
2202 |
" Line numbers:\n" + |
2105 |
" [pc: 0, line: 4]\n" + |
2203 |
" [pc: 0, line: 4]\n" + |
2106 |
" [pc: 2, line: 5]\n" + |
2204 |
" [pc: 2, line: 9]\n" + |
2107 |
" [pc: 6, line: 6]\n" + |
2205 |
" [pc: 10, line: 5]\n" + |
2108 |
" [pc: 7, line: 7]\n" + |
2206 |
" [pc: 11, line: 6]\n" + |
2109 |
" [pc: 10, line: 8]\n" + |
2207 |
" [pc: 12, line: 9]\n" + |
2110 |
" [pc: 15, line: 10]\n" + |
2208 |
" [pc: 20, line: 7]\n" + |
2111 |
" [pc: 18, line: 8]\n" + |
2209 |
" [pc: 21, line: 8]\n" + |
2112 |
" [pc: 19, line: 9]\n" + |
2210 |
" [pc: 22, line: 9]\n" + |
2113 |
" [pc: 27, line: 10]\n" + |
2211 |
" [pc: 30, line: 10]\n" + |
2114 |
" Local variable table:\n" + |
2212 |
" Local variable table:\n" + |
2115 |
" [pc: 0, pc: 29] local: this index: 0 type: X\n" + |
2213 |
" [pc: 0, pc: 32] local: this index: 0 type: X\n" + |
2116 |
" [pc: 0, pc: 29] local: b index: 1 type: boolean\n" + |
2214 |
" [pc: 0, pc: 32] local: b index: 1 type: boolean\n" + |
2117 |
" [pc: 2, pc: 6] local: i index: 2 type: int\n" + |
2215 |
" [pc: 2, pc: 11] local: i index: 2 type: int\n" + |
2118 |
" [pc: 7, pc: 10] local: e index: 2 type: java.lang.Exception\n"; |
2216 |
" [pc: 12, pc: 21] local: e index: 2 type: java.lang.Exception\n" + |
|
|
2217 |
" Stack map table: number of frames 2\n" + |
2218 |
" [pc: 11, same_locals_1_stack_item, stack: {java.lang.Exception}]\n" + |
2219 |
" [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; |
2220 |
} |
2221 |
} |
2119 |
|
2222 |
|
2120 |
try { |
2223 |
try { |
2121 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
2224 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
Lines 2319-2433
Link Here
|
2319 |
}, |
2422 |
}, |
2320 |
"null#inner -> 3#save -> 3"); |
2423 |
"null#inner -> 3#save -> 3"); |
2321 |
|
2424 |
|
2322 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
2425 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
|
|
2426 |
String expectedOutput = !compilerOptions.inlineJsrBytecode |
2323 |
? " // Method descriptor #6 ()V\n" + |
2427 |
? " // Method descriptor #6 ()V\n" + |
2324 |
" // Stack: 4, Locals: 8\n" + |
2428 |
" // Stack: 4, Locals: 10\n" + |
2325 |
" public void save();\n" + |
|
|
2326 |
" 0 iconst_3\n" + |
2327 |
" 1 istore_1 [a]\n" + |
2328 |
" 2 aconst_null\n" + |
2329 |
" 3 astore_2 [warnings]\n" + |
2330 |
" 4 aconst_null\n" + |
2331 |
" 5 astore_3 [contexts]\n" + |
2332 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2333 |
" 9 aload_2 [warnings]\n" + |
2334 |
" 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2335 |
" 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2336 |
" 16 new java.lang.StringBuilder [27]\n" + |
2337 |
" 19 dup\n" + |
2338 |
" 20 ldc <String \"#inner -> \"> [29]\n" + |
2339 |
" 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2340 |
" 25 iload_1 [a]\n" + |
2341 |
" 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2342 |
" 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2343 |
" 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2344 |
" 35 iconst_0\n" + |
2345 |
" 36 istore 7 [var]\n" + |
2346 |
" 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2347 |
" 41 new java.lang.StringBuilder [27]\n" + |
2348 |
" 44 dup\n" + |
2349 |
" 45 ldc <String \"#save -> \"> [44]\n" + |
2350 |
" 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2351 |
" 50 iload_1 [a]\n" + |
2352 |
" 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2353 |
" 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2354 |
" 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2355 |
" 60 return\n" + |
2356 |
" 61 astore 4 [npe]\n" + |
2357 |
" 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2358 |
" 66 aload_3 [contexts]\n" + |
2359 |
" 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2360 |
" 70 goto 13\n" + |
2361 |
" 73 astore 5\n" + |
2362 |
" 75 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2363 |
" 78 new java.lang.StringBuilder [27]\n" + |
2364 |
" 81 dup\n" + |
2365 |
" 82 ldc <String \"#inner -> \"> [29]\n" + |
2366 |
" 84 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2367 |
" 87 iload_1 [a]\n" + |
2368 |
" 88 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2369 |
" 91 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2370 |
" 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2371 |
" 97 aload 5\n" + |
2372 |
" 99 athrow\n" + |
2373 |
" 100 astore_2 [e]\n" + |
2374 |
" 101 goto 35\n" + |
2375 |
" 104 astore 6\n" + |
2376 |
" 106 iconst_0\n" + |
2377 |
" 107 istore 7 [var]\n" + |
2378 |
" 109 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2379 |
" 112 new java.lang.StringBuilder [27]\n" + |
2380 |
" 115 dup\n" + |
2381 |
" 116 ldc <String \"#save -> \"> [44]\n" + |
2382 |
" 118 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2383 |
" 121 iload_1 [a]\n" + |
2384 |
" 122 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2385 |
" 125 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2386 |
" 128 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2387 |
" 131 aload 6\n" + |
2388 |
" 133 athrow\n" + |
2389 |
" Exception Table:\n" + |
2390 |
" [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + |
2391 |
" [pc: 6, pc: 13] -> 73 when : any\n" + |
2392 |
" [pc: 61, pc: 73] -> 73 when : any\n" + |
2393 |
" [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" + |
2394 |
" [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" + |
2395 |
" [pc: 2, pc: 35] -> 104 when : any\n" + |
2396 |
" [pc: 61, pc: 104] -> 104 when : any\n" + |
2397 |
" Line numbers:\n" + |
2398 |
" [pc: 0, line: 3]\n" + |
2399 |
" [pc: 2, line: 5]\n" + |
2400 |
" [pc: 4, line: 6]\n" + |
2401 |
" [pc: 6, line: 8]\n" + |
2402 |
" [pc: 13, line: 14]\n" + |
2403 |
" [pc: 35, line: 19]\n" + |
2404 |
" [pc: 38, line: 20]\n" + |
2405 |
" [pc: 60, line: 9]\n" + |
2406 |
" [pc: 61, line: 10]\n" + |
2407 |
" [pc: 63, line: 11]\n" + |
2408 |
" [pc: 70, line: 12]\n" + |
2409 |
" [pc: 73, line: 13]\n" + |
2410 |
" [pc: 75, line: 14]\n" + |
2411 |
" [pc: 97, line: 15]\n" + |
2412 |
" [pc: 100, line: 16]\n" + |
2413 |
" [pc: 101, line: 17]\n" + |
2414 |
" [pc: 104, line: 18]\n" + |
2415 |
" [pc: 106, line: 19]\n" + |
2416 |
" [pc: 109, line: 20]\n" + |
2417 |
" [pc: 131, line: 21]\n" + |
2418 |
" Local variable table:\n" + |
2419 |
" [pc: 0, pc: 134] local: this index: 0 type: X\n" + |
2420 |
" [pc: 2, pc: 134] local: a index: 1 type: int\n" + |
2421 |
" [pc: 4, pc: 35] local: warnings index: 2 type: java.lang.Object\n" + |
2422 |
" [pc: 61, pc: 100] local: warnings index: 2 type: java.lang.Object\n" + |
2423 |
" [pc: 6, pc: 35] local: contexts index: 3 type: java.lang.Object\n" + |
2424 |
" [pc: 61, pc: 100] local: contexts index: 3 type: java.lang.Object\n" + |
2425 |
" [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2426 |
" [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n" + |
2427 |
" [pc: 38, pc: 60] local: var index: 7 type: int\n" + |
2428 |
" [pc: 109, pc: 131] local: var index: 7 type: int\n" |
2429 |
: " // Method descriptor #6 ()V\n" + |
2430 |
" // Stack: 4, Locals: 10\n" + |
2431 |
" public void save();\n" + |
2429 |
" public void save();\n" + |
2432 |
" 0 iconst_3\n" + |
2430 |
" 0 iconst_3\n" + |
2433 |
" 1 istore_1 [a]\n" + |
2431 |
" 1 istore_1 [a]\n" + |
Lines 2517-2523
Link Here
|
2517 |
" [pc: 6, pc: 66] local: contexts index: 3 type: java.lang.Object\n" + |
2515 |
" [pc: 6, pc: 66] local: contexts index: 3 type: java.lang.Object\n" + |
2518 |
" [pc: 22, pc: 32] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2516 |
" [pc: 22, pc: 32] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2519 |
" [pc: 67, pc: 70] local: e index: 2 type: java.lang.Exception\n" + |
2517 |
" [pc: 67, pc: 70] local: e index: 2 type: java.lang.Exception\n" + |
2520 |
" [pc: 83, pc: 105] local: var index: 9 type: int\n"; |
2518 |
" [pc: 83, pc: 105] local: var index: 9 type: int\n" |
|
|
2519 |
: null; |
2520 |
|
2521 |
if (expectedOutput == null) { |
2522 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
2523 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2524 |
" // Stack: 4, Locals: 8\n" + |
2525 |
" public void save();\n" + |
2526 |
" 0 iconst_3\n" + |
2527 |
" 1 istore_1 [a]\n" + |
2528 |
" 2 aconst_null\n" + |
2529 |
" 3 astore_2 [warnings]\n" + |
2530 |
" 4 aconst_null\n" + |
2531 |
" 5 astore_3 [contexts]\n" + |
2532 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2533 |
" 9 aload_2 [warnings]\n" + |
2534 |
" 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2535 |
" 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2536 |
" 16 new java.lang.StringBuilder [27]\n" + |
2537 |
" 19 dup\n" + |
2538 |
" 20 ldc <String \"#inner -> \"> [29]\n" + |
2539 |
" 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2540 |
" 25 iload_1 [a]\n" + |
2541 |
" 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2542 |
" 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2543 |
" 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2544 |
" 35 iconst_0\n" + |
2545 |
" 36 istore 7 [var]\n" + |
2546 |
" 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2547 |
" 41 new java.lang.StringBuilder [27]\n" + |
2548 |
" 44 dup\n" + |
2549 |
" 45 ldc <String \"#save -> \"> [44]\n" + |
2550 |
" 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2551 |
" 50 iload_1 [a]\n" + |
2552 |
" 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2553 |
" 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2554 |
" 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2555 |
" 60 return\n" + |
2556 |
" 61 astore 4 [npe]\n" + |
2557 |
" 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2558 |
" 66 aload_3 [contexts]\n" + |
2559 |
" 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2560 |
" 70 goto 13\n" + |
2561 |
" 73 astore 5\n" + |
2562 |
" 75 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2563 |
" 78 new java.lang.StringBuilder [27]\n" + |
2564 |
" 81 dup\n" + |
2565 |
" 82 ldc <String \"#inner -> \"> [29]\n" + |
2566 |
" 84 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2567 |
" 87 iload_1 [a]\n" + |
2568 |
" 88 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2569 |
" 91 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2570 |
" 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2571 |
" 97 aload 5\n" + |
2572 |
" 99 athrow\n" + |
2573 |
" 100 astore_2 [e]\n" + |
2574 |
" 101 goto 35\n" + |
2575 |
" 104 astore 6\n" + |
2576 |
" 106 iconst_0\n" + |
2577 |
" 107 istore 7 [var]\n" + |
2578 |
" 109 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2579 |
" 112 new java.lang.StringBuilder [27]\n" + |
2580 |
" 115 dup\n" + |
2581 |
" 116 ldc <String \"#save -> \"> [44]\n" + |
2582 |
" 118 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2583 |
" 121 iload_1 [a]\n" + |
2584 |
" 122 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2585 |
" 125 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2586 |
" 128 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2587 |
" 131 aload 6\n" + |
2588 |
" 133 athrow\n" + |
2589 |
" Exception Table:\n" + |
2590 |
" [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + |
2591 |
" [pc: 6, pc: 13] -> 73 when : any\n" + |
2592 |
" [pc: 61, pc: 73] -> 73 when : any\n" + |
2593 |
" [pc: 2, pc: 35] -> 100 when : java.lang.Exception\n" + |
2594 |
" [pc: 61, pc: 100] -> 100 when : java.lang.Exception\n" + |
2595 |
" [pc: 2, pc: 35] -> 104 when : any\n" + |
2596 |
" [pc: 61, pc: 104] -> 104 when : any\n" + |
2597 |
" Line numbers:\n" + |
2598 |
" [pc: 0, line: 3]\n" + |
2599 |
" [pc: 2, line: 5]\n" + |
2600 |
" [pc: 4, line: 6]\n" + |
2601 |
" [pc: 6, line: 8]\n" + |
2602 |
" [pc: 13, line: 14]\n" + |
2603 |
" [pc: 35, line: 19]\n" + |
2604 |
" [pc: 38, line: 20]\n" + |
2605 |
" [pc: 60, line: 9]\n" + |
2606 |
" [pc: 61, line: 10]\n" + |
2607 |
" [pc: 63, line: 11]\n" + |
2608 |
" [pc: 70, line: 12]\n" + |
2609 |
" [pc: 73, line: 13]\n" + |
2610 |
" [pc: 75, line: 14]\n" + |
2611 |
" [pc: 97, line: 15]\n" + |
2612 |
" [pc: 100, line: 16]\n" + |
2613 |
" [pc: 101, line: 17]\n" + |
2614 |
" [pc: 104, line: 18]\n" + |
2615 |
" [pc: 106, line: 19]\n" + |
2616 |
" [pc: 109, line: 20]\n" + |
2617 |
" [pc: 131, line: 21]\n" + |
2618 |
" Local variable table:\n" + |
2619 |
" [pc: 0, pc: 134] local: this index: 0 type: X\n" + |
2620 |
" [pc: 2, pc: 134] local: a index: 1 type: int\n" + |
2621 |
" [pc: 4, pc: 100] local: warnings index: 2 type: java.lang.Object\n" + |
2622 |
" [pc: 6, pc: 100] local: contexts index: 3 type: java.lang.Object\n" + |
2623 |
" [pc: 63, pc: 73] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2624 |
" [pc: 101, pc: 104] local: e index: 2 type: java.lang.Exception\n" + |
2625 |
" [pc: 38, pc: 60] local: var index: 7 type: int\n" + |
2626 |
" [pc: 109, pc: 131] local: var index: 7 type: int\n"; |
2627 |
} else { |
2628 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2629 |
" // Stack: 4, Locals: 8\n" + |
2630 |
" public void save();\n" + |
2631 |
" 0 iconst_3\n" + |
2632 |
" 1 istore_1 [a]\n" + |
2633 |
" 2 aconst_null\n" + |
2634 |
" 3 astore_2 [warnings]\n" + |
2635 |
" 4 aconst_null\n" + |
2636 |
" 5 astore_3 [contexts]\n" + |
2637 |
" 6 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2638 |
" 9 aload_2 [warnings]\n" + |
2639 |
" 10 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2640 |
" 13 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2641 |
" 16 new java.lang.StringBuilder [27]\n" + |
2642 |
" 19 dup\n" + |
2643 |
" 20 ldc <String \"#inner -> \"> [29]\n" + |
2644 |
" 22 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2645 |
" 25 iload_1 [a]\n" + |
2646 |
" 26 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2647 |
" 29 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2648 |
" 32 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2649 |
" 35 iconst_0\n" + |
2650 |
" 36 istore 7 [var]\n" + |
2651 |
" 38 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2652 |
" 41 new java.lang.StringBuilder [27]\n" + |
2653 |
" 44 dup\n" + |
2654 |
" 45 ldc <String \"#save -> \"> [44]\n" + |
2655 |
" 47 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2656 |
" 50 iload_1 [a]\n" + |
2657 |
" 51 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2658 |
" 54 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2659 |
" 57 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2660 |
" 60 return\n" + |
2661 |
" 61 astore 4 [npe]\n" + |
2662 |
" 63 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2663 |
" 66 aload_3 [contexts]\n" + |
2664 |
" 67 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [21]\n" + |
2665 |
" 70 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2666 |
" 73 new java.lang.StringBuilder [27]\n" + |
2667 |
" 76 dup\n" + |
2668 |
" 77 ldc <String \"#inner -> \"> [29]\n" + |
2669 |
" 79 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2670 |
" 82 iload_1 [a]\n" + |
2671 |
" 83 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2672 |
" 86 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2673 |
" 89 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2674 |
" 92 iconst_0\n" + |
2675 |
" 93 istore 7 [var]\n" + |
2676 |
" 95 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2677 |
" 98 new java.lang.StringBuilder [27]\n" + |
2678 |
" 101 dup\n" + |
2679 |
" 102 ldc <String \"#save -> \"> [44]\n" + |
2680 |
" 104 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2681 |
" 107 iload_1 [a]\n" + |
2682 |
" 108 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2683 |
" 111 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2684 |
" 114 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2685 |
" 117 return\n" + |
2686 |
" 118 astore 5\n" + |
2687 |
" 120 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2688 |
" 123 new java.lang.StringBuilder [27]\n" + |
2689 |
" 126 dup\n" + |
2690 |
" 127 ldc <String \"#inner -> \"> [29]\n" + |
2691 |
" 129 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2692 |
" 132 iload_1 [a]\n" + |
2693 |
" 133 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2694 |
" 136 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2695 |
" 139 invokevirtual java.io.PrintStream.print(java.lang.String) : void [42]\n" + |
2696 |
" 142 aload 5\n" + |
2697 |
" 144 athrow\n" + |
2698 |
" 145 astore_2 [e]\n" + |
2699 |
" 146 iconst_0\n" + |
2700 |
" 147 istore 7 [var]\n" + |
2701 |
" 149 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2702 |
" 152 new java.lang.StringBuilder [27]\n" + |
2703 |
" 155 dup\n" + |
2704 |
" 156 ldc <String \"#save -> \"> [44]\n" + |
2705 |
" 158 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2706 |
" 161 iload_1 [a]\n" + |
2707 |
" 162 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2708 |
" 165 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2709 |
" 168 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2710 |
" 171 return\n" + |
2711 |
" 172 astore 6\n" + |
2712 |
" 174 iconst_0\n" + |
2713 |
" 175 istore 7 [var]\n" + |
2714 |
" 177 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2715 |
" 180 new java.lang.StringBuilder [27]\n" + |
2716 |
" 183 dup\n" + |
2717 |
" 184 ldc <String \"#save -> \"> [44]\n" + |
2718 |
" 186 invokespecial java.lang.StringBuilder(java.lang.String) [31]\n" + |
2719 |
" 189 iload_1 [a]\n" + |
2720 |
" 190 invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [34]\n" + |
2721 |
" 193 invokevirtual java.lang.StringBuilder.toString() : java.lang.String [38]\n" + |
2722 |
" 196 invokevirtual java.io.PrintStream.println(java.lang.String) : void [46]\n" + |
2723 |
" 199 aload 6\n" + |
2724 |
" 201 athrow\n" + |
2725 |
" Exception Table:\n" + |
2726 |
" [pc: 6, pc: 13] -> 61 when : java.lang.NullPointerException\n" + |
2727 |
" [pc: 6, pc: 13] -> 118 when : any\n" + |
2728 |
" [pc: 61, pc: 70] -> 118 when : any\n" + |
2729 |
" [pc: 2, pc: 35] -> 145 when : java.lang.Exception\n" + |
2730 |
" [pc: 61, pc: 92] -> 145 when : java.lang.Exception\n" + |
2731 |
" [pc: 118, pc: 145] -> 145 when : java.lang.Exception\n" + |
2732 |
" [pc: 2, pc: 35] -> 172 when : any\n" + |
2733 |
" [pc: 61, pc: 92] -> 172 when : any\n" + |
2734 |
" [pc: 118, pc: 146] -> 172 when : any\n" + |
2735 |
" Line numbers:\n" + |
2736 |
" [pc: 0, line: 3]\n" + |
2737 |
" [pc: 2, line: 5]\n" + |
2738 |
" [pc: 4, line: 6]\n" + |
2739 |
" [pc: 6, line: 8]\n" + |
2740 |
" [pc: 13, line: 14]\n" + |
2741 |
" [pc: 35, line: 19]\n" + |
2742 |
" [pc: 38, line: 20]\n" + |
2743 |
" [pc: 60, line: 9]\n" + |
2744 |
" [pc: 61, line: 10]\n" + |
2745 |
" [pc: 63, line: 11]\n" + |
2746 |
" [pc: 70, line: 14]\n" + |
2747 |
" [pc: 92, line: 19]\n" + |
2748 |
" [pc: 95, line: 20]\n" + |
2749 |
" [pc: 117, line: 12]\n" + |
2750 |
" [pc: 118, line: 13]\n" + |
2751 |
" [pc: 120, line: 14]\n" + |
2752 |
" [pc: 142, line: 15]\n" + |
2753 |
" [pc: 145, line: 16]\n" + |
2754 |
" [pc: 146, line: 19]\n" + |
2755 |
" [pc: 149, line: 20]\n" + |
2756 |
" [pc: 171, line: 17]\n" + |
2757 |
" [pc: 172, line: 18]\n" + |
2758 |
" [pc: 174, line: 19]\n" + |
2759 |
" [pc: 177, line: 20]\n" + |
2760 |
" [pc: 199, line: 21]\n" + |
2761 |
" Local variable table:\n" + |
2762 |
" [pc: 0, pc: 202] local: this index: 0 type: X\n" + |
2763 |
" [pc: 2, pc: 202] local: a index: 1 type: int\n" + |
2764 |
" [pc: 4, pc: 145] local: warnings index: 2 type: java.lang.Object\n" + |
2765 |
" [pc: 6, pc: 145] local: contexts index: 3 type: java.lang.Object\n" + |
2766 |
" [pc: 63, pc: 118] local: npe index: 4 type: java.lang.NullPointerException\n" + |
2767 |
" [pc: 146, pc: 172] local: e index: 2 type: java.lang.Exception\n" + |
2768 |
" [pc: 38, pc: 60] local: var index: 7 type: int\n" + |
2769 |
" [pc: 95, pc: 117] local: var index: 7 type: int\n" + |
2770 |
" [pc: 149, pc: 171] local: var index: 7 type: int\n" + |
2771 |
" [pc: 177, pc: 199] local: var index: 7 type: int\n" + |
2772 |
" Stack map table: number of frames 4\n" + |
2773 |
" [pc: 61, full, stack: {java.lang.NullPointerException}, locals: {X, int, java.lang.Object, java.lang.Object}]\n" + |
2774 |
" [pc: 118, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n" + |
2775 |
" [pc: 145, full, stack: {java.lang.Exception}, locals: {X, int}]\n" + |
2776 |
" [pc: 172, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; |
2777 |
} |
2778 |
} |
2521 |
|
2779 |
|
2522 |
try { |
2780 |
try { |
2523 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
2781 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
Lines 2559-2594
Link Here
|
2559 |
}, |
2817 |
}, |
2560 |
"SUCCESS"); |
2818 |
"SUCCESS"); |
2561 |
|
2819 |
|
2562 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
2820 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
2563 |
? " // Method descriptor #19 ()Ljava/lang/Object;\n" + |
2821 |
String expectedOutput = !compilerOptions.inlineJsrBytecode ? |
2564 |
" // Stack: 2, Locals: 2\n" + |
2822 |
" // Method descriptor #19 ()Ljava/lang/Object;\n" + |
2565 |
" static java.lang.Object foo();\n" + |
|
|
2566 |
" 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2567 |
" 3 ldc <String \"SUCCESS\"> [28]\n" + |
2568 |
" 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2569 |
" 8 aconst_null\n" + |
2570 |
" 9 areturn\n" + |
2571 |
" 10 astore_0 [e]\n" + |
2572 |
" 11 goto 0\n" + |
2573 |
" 14 astore_1\n" + |
2574 |
" 15 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2575 |
" 18 ldc <String \"SUCCESS\"> [28]\n" + |
2576 |
" 20 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2577 |
" 23 aload_1\n" + |
2578 |
" 24 athrow\n" + |
2579 |
" Exception Table:\n" + |
2580 |
" [pc: 10, pc: 14] -> 14 when : any\n" + |
2581 |
" Line numbers:\n" + |
2582 |
" [pc: 0, line: 11]\n" + |
2583 |
" [pc: 8, line: 7]\n" + |
2584 |
" [pc: 10, line: 8]\n" + |
2585 |
" [pc: 11, line: 9]\n" + |
2586 |
" [pc: 14, line: 10]\n" + |
2587 |
" [pc: 15, line: 11]\n" + |
2588 |
" [pc: 23, line: 12]\n" + |
2589 |
" Local variable table:\n" + |
2590 |
" [pc: 11, pc: 14] local: e index: 0 type: java.lang.Exception\n" |
2591 |
: " // Method descriptor #19 ()Ljava/lang/Object;\n" + |
2592 |
" // Stack: 2, Locals: 3\n" + |
2823 |
" // Stack: 2, Locals: 3\n" + |
2593 |
" static java.lang.Object foo();\n" + |
2824 |
" static java.lang.Object foo();\n" + |
2594 |
" 0 jsr 15\n" + |
2825 |
" 0 jsr 15\n" + |
Lines 2619-2627
Link Here
|
2619 |
" [pc: 16, line: 11]\n" + |
2850 |
" [pc: 16, line: 11]\n" + |
2620 |
" [pc: 24, line: 12]\n" + |
2851 |
" [pc: 24, line: 12]\n" + |
2621 |
" Local variable table:\n" + |
2852 |
" Local variable table:\n" + |
2622 |
" [pc: 6, pc: 9] local: e index: 0 type: java.lang.Exception\n"; |
2853 |
" [pc: 6, pc: 9] local: e index: 0 type: java.lang.Exception\n" |
|
|
2854 |
: null; |
2623 |
|
2855 |
|
2624 |
try { |
2856 |
if (expectedOutput == null) { |
|
|
2857 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
2858 |
expectedOutput = " // Method descriptor #19 ()Ljava/lang/Object;\n" + |
2859 |
" // Stack: 2, Locals: 2\n" + |
2860 |
" static java.lang.Object foo();\n" + |
2861 |
" 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2862 |
" 3 ldc <String \"SUCCESS\"> [28]\n" + |
2863 |
" 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2864 |
" 8 aconst_null\n" + |
2865 |
" 9 areturn\n" + |
2866 |
" 10 astore_0 [e]\n" + |
2867 |
" 11 goto 0\n" + |
2868 |
" 14 astore_1\n" + |
2869 |
" 15 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2870 |
" 18 ldc <String \"SUCCESS\"> [28]\n" + |
2871 |
" 20 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2872 |
" 23 aload_1\n" + |
2873 |
" 24 athrow\n" + |
2874 |
" Exception Table:\n" + |
2875 |
" [pc: 10, pc: 14] -> 14 when : any\n" + |
2876 |
" Line numbers:\n" + |
2877 |
" [pc: 0, line: 11]\n" + |
2878 |
" [pc: 8, line: 7]\n" + |
2879 |
" [pc: 10, line: 8]\n" + |
2880 |
" [pc: 11, line: 9]\n" + |
2881 |
" [pc: 14, line: 10]\n" + |
2882 |
" [pc: 15, line: 11]\n" + |
2883 |
" [pc: 23, line: 12]\n" + |
2884 |
" Local variable table:\n" + |
2885 |
" [pc: 11, pc: 14] local: e index: 0 type: java.lang.Exception\n"; |
2886 |
} else { |
2887 |
expectedOutput = " // Method descriptor #19 ()Ljava/lang/Object;\n" + |
2888 |
" // Stack: 2, Locals: 2\n" + |
2889 |
" static java.lang.Object foo();\n" + |
2890 |
" 0 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2891 |
" 3 ldc <String \"SUCCESS\"> [28]\n" + |
2892 |
" 5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2893 |
" 8 aconst_null\n" + |
2894 |
" 9 areturn\n" + |
2895 |
" 10 astore_0 [e]\n" + |
2896 |
" 11 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2897 |
" 14 ldc <String \"SUCCESS\"> [28]\n" + |
2898 |
" 16 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2899 |
" 19 aconst_null\n" + |
2900 |
" 20 areturn\n" + |
2901 |
" 21 astore_1\n" + |
2902 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [22]\n" + |
2903 |
" 25 ldc <String \"SUCCESS\"> [28]\n" + |
2904 |
" 27 invokevirtual java.io.PrintStream.println(java.lang.String) : void [30]\n" + |
2905 |
" 30 aload_1\n" + |
2906 |
" 31 athrow\n" + |
2907 |
" Exception Table:\n" + |
2908 |
" [pc: 10, pc: 11] -> 21 when : any\n" + |
2909 |
" Line numbers:\n" + |
2910 |
" [pc: 0, line: 11]\n" + |
2911 |
" [pc: 8, line: 7]\n" + |
2912 |
" [pc: 10, line: 8]\n" + |
2913 |
" [pc: 11, line: 11]\n" + |
2914 |
" [pc: 19, line: 9]\n" + |
2915 |
" [pc: 21, line: 10]\n" + |
2916 |
" [pc: 22, line: 11]\n" + |
2917 |
" [pc: 30, line: 12]\n" + |
2918 |
" Local variable table:\n" + |
2919 |
" [pc: 11, pc: 21] local: e index: 0 type: java.lang.Exception\n" + |
2920 |
" Stack map table: number of frames 2\n" + |
2921 |
" [pc: 10, same_locals_1_stack_item, stack: {java.lang.Exception}]\n" + |
2922 |
" [pc: 21, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; |
2923 |
} |
2924 |
} |
2925 |
try { |
2625 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
2926 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
2626 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
2927 |
byte[] classFileBytes = org.eclipse.jdt.internal.compiler.util.Util.getFileByteContent(f); |
2627 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
2928 |
ClassFileBytesDisassembler disassembler = ToolFactory.createDefaultClassFileBytesDisassembler(); |
Lines 2679-2686
Link Here
|
2679 |
}, |
2980 |
}, |
2680 |
"[try]null[finally][caught npe]"); |
2981 |
"[try]null[finally][caught npe]"); |
2681 |
|
2982 |
|
2682 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
2983 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
|
|
2984 |
String expectedOutput = !compilerOptions.inlineJsrBytecode |
2683 |
? " // Method descriptor #6 ()V\n" + |
2985 |
? " // Method descriptor #6 ()V\n" + |
|
|
2986 |
" // Stack: 2, Locals: 8\n" + |
2987 |
" public void save();\n" + |
2988 |
" 0 aconst_null\n" + |
2989 |
" 1 astore_1 [warnings]\n" + |
2990 |
" 2 aconst_null\n" + |
2991 |
" 3 astore_2 [contexts]\n" + |
2992 |
" 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2993 |
" 7 ldc <String \"[try]\"> [21]\n" + |
2994 |
" 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2995 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2996 |
" 15 aload_1 [warnings]\n" + |
2997 |
" 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
2998 |
" 19 jsr 62\n" + |
2999 |
" 22 return\n" + |
3000 |
" 23 astore_3 [npe]\n" + |
3001 |
" 24 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3002 |
" 27 ldc <String \"[npe]\"> [32]\n" + |
3003 |
" 29 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3004 |
" 32 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3005 |
" 35 aload_2 [contexts]\n" + |
3006 |
" 36 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3007 |
" 39 goto 19\n" + |
3008 |
" 42 astore_1 [e]\n" + |
3009 |
" 43 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3010 |
" 46 ldc <String \"[e]\"> [34]\n" + |
3011 |
" 48 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3012 |
" 51 goto 19\n" + |
3013 |
" 54 astore 5\n" + |
3014 |
" 56 jsr 62\n" + |
3015 |
" 59 aload 5\n" + |
3016 |
" 61 athrow\n" + |
3017 |
" 62 astore 4\n" + |
3018 |
" 64 iconst_0\n" + |
3019 |
" 65 istore 6 [var]\n" + |
3020 |
" 67 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3021 |
" 70 ldc <String \"[finally]\"> [36]\n" + |
3022 |
" 72 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3023 |
" 75 aconst_null\n" + |
3024 |
" 76 astore 7 [o]\n" + |
3025 |
" 78 aload 7 [o]\n" + |
3026 |
" 80 invokevirtual java.lang.Object.toString() : java.lang.String [38]\n" + |
3027 |
" 83 pop\n" + |
3028 |
" 84 ret 4\n" + |
3029 |
" Exception Table:\n" + |
3030 |
" [pc: 4, pc: 19] -> 23 when : java.lang.NullPointerException\n" + |
3031 |
" [pc: 0, pc: 22] -> 42 when : java.lang.Exception\n" + |
3032 |
" [pc: 23, pc: 42] -> 42 when : java.lang.Exception\n" + |
3033 |
" [pc: 0, pc: 22] -> 54 when : any\n" + |
3034 |
" [pc: 23, pc: 54] -> 54 when : any\n" + |
3035 |
" Line numbers:\n" + |
3036 |
" [pc: 0, line: 4]\n" + |
3037 |
" [pc: 2, line: 5]\n" + |
3038 |
" [pc: 4, line: 7]\n" + |
3039 |
" [pc: 12, line: 8]\n" + |
3040 |
" [pc: 19, line: 9]\n" + |
3041 |
" [pc: 23, line: 10]\n" + |
3042 |
" [pc: 24, line: 11]\n" + |
3043 |
" [pc: 32, line: 12]\n" + |
3044 |
" [pc: 39, line: 13]\n" + |
3045 |
" [pc: 42, line: 15]\n" + |
3046 |
" [pc: 43, line: 16]\n" + |
3047 |
" [pc: 51, line: 17]\n" + |
3048 |
" [pc: 54, line: 18]\n" + |
3049 |
" [pc: 59, line: 23]\n" + |
3050 |
" [pc: 62, line: 18]\n" + |
3051 |
" [pc: 64, line: 19]\n" + |
3052 |
" [pc: 67, line: 20]\n" + |
3053 |
" [pc: 75, line: 21]\n" + |
3054 |
" [pc: 78, line: 22]\n" + |
3055 |
" [pc: 84, line: 23]\n" + |
3056 |
" Local variable table:\n" + |
3057 |
" [pc: 0, pc: 86] local: this index: 0 type: X\n" + |
3058 |
" [pc: 2, pc: 42] local: warnings index: 1 type: java.lang.Object\n" + |
3059 |
" [pc: 4, pc: 42] local: contexts index: 2 type: java.lang.Object\n" + |
3060 |
" [pc: 24, pc: 42] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3061 |
" [pc: 43, pc: 54] local: e index: 1 type: java.lang.Exception\n" + |
3062 |
" [pc: 67, pc: 84] local: var index: 6 type: int\n" + |
3063 |
" [pc: 78, pc: 84] local: o index: 7 type: java.lang.Object\n" |
3064 |
: null; |
3065 |
|
3066 |
if (expectedOutput == null) { |
3067 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
3068 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
2684 |
" // Stack: 2, Locals: 7\n" + |
3069 |
" // Stack: 2, Locals: 7\n" + |
2685 |
" public void save();\n" + |
3070 |
" public void save();\n" + |
2686 |
" 0 aconst_null\n" + |
3071 |
" 0 aconst_null\n" + |
Lines 2761-2855
Link Here
|
2761 |
" [pc: 93, line: 23]\n" + |
3146 |
" [pc: 93, line: 23]\n" + |
2762 |
" Local variable table:\n" + |
3147 |
" Local variable table:\n" + |
2763 |
" [pc: 0, pc: 96] local: this index: 0 type: X\n" + |
3148 |
" [pc: 0, pc: 96] local: this index: 0 type: X\n" + |
2764 |
" [pc: 2, pc: 19] local: warnings index: 1 type: java.lang.Object\n" + |
3149 |
" [pc: 2, pc: 59] local: warnings index: 1 type: java.lang.Object\n" + |
2765 |
" [pc: 40, pc: 59] local: warnings index: 1 type: java.lang.Object\n" + |
3150 |
" [pc: 4, pc: 59] local: contexts index: 2 type: java.lang.Object\n" + |
2766 |
" [pc: 4, pc: 19] local: contexts index: 2 type: java.lang.Object\n" + |
|
|
2767 |
" [pc: 40, pc: 59] local: contexts index: 2 type: java.lang.Object\n" + |
2768 |
" [pc: 41, pc: 59] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3151 |
" [pc: 41, pc: 59] local: npe index: 3 type: java.lang.NullPointerException\n" + |
2769 |
" [pc: 60, pc: 71] local: e index: 1 type: java.lang.Exception\n" + |
3152 |
" [pc: 60, pc: 71] local: e index: 1 type: java.lang.Exception\n" + |
2770 |
" [pc: 22, pc: 39] local: var index: 5 type: int\n" + |
3153 |
" [pc: 22, pc: 39] local: var index: 5 type: int\n" + |
2771 |
" [pc: 76, pc: 93] local: var index: 5 type: int\n" + |
3154 |
" [pc: 76, pc: 93] local: var index: 5 type: int\n" + |
2772 |
" [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + |
3155 |
" [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + |
2773 |
" [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n" |
3156 |
" [pc: 87, pc: 93] local: o index: 6 type: java.lang.Object\n"; |
2774 |
: " // Method descriptor #6 ()V\n" + |
3157 |
} else { |
2775 |
" // Stack: 2, Locals: 8\n" + |
3158 |
expectedOutput = " // Method descriptor #6 ()V\n" + |
|
|
3159 |
" // Stack: 2, Locals: 7\n" + |
2776 |
" public void save();\n" + |
3160 |
" public void save();\n" + |
2777 |
" 0 aconst_null\n" + |
3161 |
" 0 aconst_null\n" + |
2778 |
" 1 astore_1 [warnings]\n" + |
3162 |
" 1 astore_1 [warnings]\n" + |
2779 |
" 2 aconst_null\n" + |
3163 |
" 2 aconst_null\n" + |
2780 |
" 3 astore_2 [contexts]\n" + |
3164 |
" 3 astore_2 [contexts]\n" + |
2781 |
" 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3165 |
" 4 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2782 |
" 7 ldc <String \"[try]\"> [21]\n" + |
3166 |
" 7 ldc <String \"[try]\"> [21]\n" + |
2783 |
" 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3167 |
" 9 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2784 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3168 |
" 12 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2785 |
" 15 aload_1 [warnings]\n" + |
3169 |
" 15 aload_1 [warnings]\n" + |
2786 |
" 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3170 |
" 16 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
2787 |
" 19 jsr 62\n" + |
3171 |
" 19 iconst_0\n" + |
2788 |
" 22 return\n" + |
3172 |
" 20 istore 5 [var]\n" + |
2789 |
" 23 astore_3 [npe]\n" + |
3173 |
" 22 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2790 |
" 24 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3174 |
" 25 ldc <String \"[finally]\"> [32]\n" + |
2791 |
" 27 ldc <String \"[npe]\"> [32]\n" + |
3175 |
" 27 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2792 |
" 29 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3176 |
" 30 aconst_null\n" + |
2793 |
" 32 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3177 |
" 31 astore 6 [o]\n" + |
2794 |
" 35 aload_2 [contexts]\n" + |
3178 |
" 33 aload 6 [o]\n" + |
2795 |
" 36 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
3179 |
" 35 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
2796 |
" 39 goto 19\n" + |
3180 |
" 38 pop\n" + |
2797 |
" 42 astore_1 [e]\n" + |
3181 |
" 39 return\n" + |
2798 |
" 43 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3182 |
" 40 astore_3 [npe]\n" + |
2799 |
" 46 ldc <String \"[e]\"> [34]\n" + |
3183 |
" 41 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2800 |
" 48 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3184 |
" 44 ldc <String \"[npe]\"> [38]\n" + |
2801 |
" 51 goto 19\n" + |
3185 |
" 46 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2802 |
" 54 astore 5\n" + |
3186 |
" 49 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2803 |
" 56 jsr 62\n" + |
3187 |
" 52 aload_2 [contexts]\n" + |
2804 |
" 59 aload 5\n" + |
3188 |
" 53 invokevirtual java.io.PrintStream.print(java.lang.Object) : void [29]\n" + |
2805 |
" 61 athrow\n" + |
3189 |
" 56 iconst_0\n" + |
2806 |
" 62 astore 4\n" + |
3190 |
" 57 istore 5 [var]\n" + |
2807 |
" 64 iconst_0\n" + |
3191 |
" 59 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
2808 |
" 65 istore 6 [var]\n" + |
3192 |
" 62 ldc <String \"[finally]\"> [32]\n" + |
2809 |
" 67 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3193 |
" 64 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
2810 |
" 70 ldc <String \"[finally]\"> [36]\n" + |
3194 |
" 67 aconst_null\n" + |
2811 |
" 72 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3195 |
" 68 astore 6 [o]\n" + |
2812 |
" 75 aconst_null\n" + |
3196 |
" 70 aload 6 [o]\n" + |
2813 |
" 76 astore 7 [o]\n" + |
3197 |
" 72 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
2814 |
" 78 aload 7 [o]\n" + |
3198 |
" 75 pop\n" + |
2815 |
" 80 invokevirtual java.lang.Object.toString() : java.lang.String [38]\n" + |
3199 |
" 76 return\n" + |
2816 |
" 83 pop\n" + |
3200 |
" 77 astore_1 [e]\n" + |
2817 |
" 84 ret 4\n" + |
3201 |
" 78 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
|
|
3202 |
" 81 ldc <String \"[e]\"> [40]\n" + |
3203 |
" 83 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3204 |
" 86 iconst_0\n" + |
3205 |
" 87 istore 5 [var]\n" + |
3206 |
" 89 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3207 |
" 92 ldc <String \"[finally]\"> [32]\n" + |
3208 |
" 94 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3209 |
" 97 aconst_null\n" + |
3210 |
" 98 astore 6 [o]\n" + |
3211 |
" 100 aload 6 [o]\n" + |
3212 |
" 102 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3213 |
" 105 pop\n" + |
3214 |
" 106 return\n" + |
3215 |
" 107 astore 4\n" + |
3216 |
" 109 iconst_0\n" + |
3217 |
" 110 istore 5 [var]\n" + |
3218 |
" 112 getstatic java.lang.System.out : java.io.PrintStream [15]\n" + |
3219 |
" 115 ldc <String \"[finally]\"> [32]\n" + |
3220 |
" 117 invokevirtual java.io.PrintStream.print(java.lang.String) : void [23]\n" + |
3221 |
" 120 aconst_null\n" + |
3222 |
" 121 astore 6 [o]\n" + |
3223 |
" 123 aload 6 [o]\n" + |
3224 |
" 125 invokevirtual java.lang.Object.toString() : java.lang.String [34]\n" + |
3225 |
" 128 pop\n" + |
3226 |
" 129 aload 4\n" + |
3227 |
" 131 athrow\n" + |
2818 |
" Exception Table:\n" + |
3228 |
" Exception Table:\n" + |
2819 |
" [pc: 4, pc: 19] -> 23 when : java.lang.NullPointerException\n" + |
3229 |
" [pc: 4, pc: 19] -> 40 when : java.lang.NullPointerException\n" + |
2820 |
" [pc: 0, pc: 22] -> 42 when : java.lang.Exception\n" + |
3230 |
" [pc: 0, pc: 19] -> 77 when : java.lang.Exception\n" + |
2821 |
" [pc: 23, pc: 42] -> 42 when : java.lang.Exception\n" + |
3231 |
" [pc: 40, pc: 56] -> 77 when : java.lang.Exception\n" + |
2822 |
" [pc: 0, pc: 22] -> 54 when : any\n" + |
3232 |
" [pc: 0, pc: 19] -> 107 when : any\n" + |
2823 |
" [pc: 23, pc: 54] -> 54 when : any\n" + |
3233 |
" [pc: 40, pc: 56] -> 107 when : any\n" + |
|
|
3234 |
" [pc: 77, pc: 86] -> 107 when : any\n" + |
2824 |
" Line numbers:\n" + |
3235 |
" Line numbers:\n" + |
2825 |
" [pc: 0, line: 4]\n" + |
3236 |
" [pc: 0, line: 4]\n" + |
2826 |
" [pc: 2, line: 5]\n" + |
3237 |
" [pc: 2, line: 5]\n" + |
2827 |
" [pc: 4, line: 7]\n" + |
3238 |
" [pc: 4, line: 7]\n" + |
2828 |
" [pc: 12, line: 8]\n" + |
3239 |
" [pc: 12, line: 8]\n" + |
2829 |
" [pc: 19, line: 9]\n" + |
3240 |
" [pc: 19, line: 19]\n" + |
2830 |
" [pc: 23, line: 10]\n" + |
3241 |
" [pc: 22, line: 20]\n" + |
2831 |
" [pc: 24, line: 11]\n" + |
3242 |
" [pc: 30, line: 21]\n" + |
2832 |
" [pc: 32, line: 12]\n" + |
3243 |
" [pc: 33, line: 22]\n" + |
2833 |
" [pc: 39, line: 13]\n" + |
3244 |
" [pc: 39, line: 9]\n" + |
2834 |
" [pc: 42, line: 15]\n" + |
3245 |
" [pc: 40, line: 10]\n" + |
2835 |
" [pc: 43, line: 16]\n" + |
3246 |
" [pc: 41, line: 11]\n" + |
2836 |
" [pc: 51, line: 17]\n" + |
3247 |
" [pc: 49, line: 12]\n" + |
2837 |
" [pc: 54, line: 18]\n" + |
3248 |
" [pc: 56, line: 19]\n" + |
2838 |
" [pc: 59, line: 23]\n" + |
3249 |
" [pc: 59, line: 20]\n" + |
2839 |
" [pc: 62, line: 18]\n" + |
3250 |
" [pc: 67, line: 21]\n" + |
2840 |
" [pc: 64, line: 19]\n" + |
3251 |
" [pc: 70, line: 22]\n" + |
2841 |
" [pc: 67, line: 20]\n" + |
3252 |
" [pc: 76, line: 13]\n" + |
2842 |
" [pc: 75, line: 21]\n" + |
3253 |
" [pc: 77, line: 15]\n" + |
2843 |
" [pc: 78, line: 22]\n" + |
3254 |
" [pc: 78, line: 16]\n" + |
2844 |
" [pc: 84, line: 23]\n" + |
3255 |
" [pc: 86, line: 19]\n" + |
2845 |
" Local variable table:\n" + |
3256 |
" [pc: 89, line: 20]\n" + |
2846 |
" [pc: 0, pc: 86] local: this index: 0 type: X\n" + |
3257 |
" [pc: 97, line: 21]\n" + |
2847 |
" [pc: 2, pc: 42] local: warnings index: 1 type: java.lang.Object\n" + |
3258 |
" [pc: 100, line: 22]\n" + |
2848 |
" [pc: 4, pc: 42] local: contexts index: 2 type: java.lang.Object\n" + |
3259 |
" [pc: 106, line: 17]\n" + |
2849 |
" [pc: 24, pc: 42] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3260 |
" [pc: 107, line: 18]\n" + |
2850 |
" [pc: 43, pc: 54] local: e index: 1 type: java.lang.Exception\n" + |
3261 |
" [pc: 109, line: 19]\n" + |
2851 |
" [pc: 67, pc: 84] local: var index: 6 type: int\n" + |
3262 |
" [pc: 112, line: 20]\n" + |
2852 |
" [pc: 78, pc: 84] local: o index: 7 type: java.lang.Object\n"; |
3263 |
" [pc: 120, line: 21]\n" + |
|
|
3264 |
" [pc: 123, line: 22]\n" + |
3265 |
" [pc: 129, line: 23]\n" + |
3266 |
" Local variable table:\n" + |
3267 |
" [pc: 0, pc: 132] local: this index: 0 type: X\n" + |
3268 |
" [pc: 2, pc: 77] local: warnings index: 1 type: java.lang.Object\n" + |
3269 |
" [pc: 4, pc: 77] local: contexts index: 2 type: java.lang.Object\n" + |
3270 |
" [pc: 41, pc: 77] local: npe index: 3 type: java.lang.NullPointerException\n" + |
3271 |
" [pc: 78, pc: 107] local: e index: 1 type: java.lang.Exception\n" + |
3272 |
" [pc: 22, pc: 39] local: var index: 5 type: int\n" + |
3273 |
" [pc: 59, pc: 76] local: var index: 5 type: int\n" + |
3274 |
" [pc: 89, pc: 106] local: var index: 5 type: int\n" + |
3275 |
" [pc: 112, pc: 129] local: var index: 5 type: int\n" + |
3276 |
" [pc: 33, pc: 39] local: o index: 6 type: java.lang.Object\n" + |
3277 |
" [pc: 70, pc: 76] local: o index: 6 type: java.lang.Object\n" + |
3278 |
" [pc: 100, pc: 106] local: o index: 6 type: java.lang.Object\n" + |
3279 |
" [pc: 123, pc: 129] local: o index: 6 type: java.lang.Object\n" + |
3280 |
" Stack map table: number of frames 3\n" + |
3281 |
" [pc: 40, full, stack: {java.lang.NullPointerException}, locals: {X, java.lang.Object, java.lang.Object}]\n" + |
3282 |
" [pc: 77, full, stack: {java.lang.Exception}, locals: {X}]\n" + |
3283 |
" [pc: 107, same_locals_1_stack_item, stack: {java.lang.Throwable}]\n"; |
3284 |
} |
3285 |
} |
2853 |
|
3286 |
|
2854 |
try { |
3287 |
try { |
2855 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
3288 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
Lines 2891-2898
Link Here
|
2891 |
}, |
3324 |
}, |
2892 |
""); |
3325 |
""); |
2893 |
|
3326 |
|
2894 |
String expectedOutput = new CompilerOptions(this.getCompilerOptions()).inlineJsrBytecode |
3327 |
CompilerOptions compilerOptions = new CompilerOptions(this.getCompilerOptions()); |
|
|
3328 |
String expectedOutput = !compilerOptions.inlineJsrBytecode |
2895 |
? " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
3329 |
? " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
|
|
3330 |
" // Stack: 2, Locals: 4\n" + |
3331 |
" public static java.lang.Object sanityCheckBug();\n" + |
3332 |
" 0 new java.lang.Object [3]\n" + |
3333 |
" 3 dup\n" + |
3334 |
" 4 invokespecial java.lang.Object() [8]\n" + |
3335 |
" 7 astore_0 [obj]\n" + |
3336 |
" 8 aload_0 [obj]\n" + |
3337 |
" 9 astore_3\n" + |
3338 |
" 10 jsr 21\n" + |
3339 |
" 13 aload_3\n" + |
3340 |
" 14 areturn\n" + |
3341 |
" 15 astore_2\n" + |
3342 |
" 16 jsr 21\n" + |
3343 |
" 19 aload_2\n" + |
3344 |
" 20 athrow\n" + |
3345 |
" 21 astore_1\n" + |
3346 |
" 22 aconst_null\n" + |
3347 |
" 23 astore_0 [obj]\n" + |
3348 |
" 24 ret 1\n" + |
3349 |
" Exception Table:\n" + |
3350 |
" [pc: 0, pc: 13] -> 15 when : any\n" + |
3351 |
" Line numbers:\n" + |
3352 |
" [pc: 0, line: 5]\n" + |
3353 |
" [pc: 8, line: 6]\n" + |
3354 |
" [pc: 15, line: 7]\n" + |
3355 |
" [pc: 19, line: 9]\n" + |
3356 |
" [pc: 21, line: 7]\n" + |
3357 |
" [pc: 22, line: 8]\n" + |
3358 |
" [pc: 24, line: 9]\n" + |
3359 |
" Local variable table:\n" + |
3360 |
" [pc: 8, pc: 15] local: obj index: 0 type: java.lang.Object\n" + |
3361 |
" [pc: 24, pc: 26] local: obj index: 0 type: java.lang.Object\n" |
3362 |
: null; |
3363 |
|
3364 |
if (expectedOutput == null) { |
3365 |
if (compilerOptions.targetJDK == ClassFileConstants.JDK1_5) { |
3366 |
expectedOutput = " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
2896 |
" // Stack: 2, Locals: 3\n" + |
3367 |
" // Stack: 2, Locals: 3\n" + |
2897 |
" public static java.lang.Object sanityCheckBug();\n" + |
3368 |
" public static java.lang.Object sanityCheckBug();\n" + |
2898 |
" 0 new java.lang.Object [3]\n" + |
3369 |
" 0 new java.lang.Object [3]\n" + |
Lines 2921-2962
Link Here
|
2921 |
" [pc: 15, line: 8]\n" + |
3392 |
" [pc: 15, line: 8]\n" + |
2922 |
" [pc: 17, line: 9]\n" + |
3393 |
" [pc: 17, line: 9]\n" + |
2923 |
" Local variable table:\n" + |
3394 |
" Local variable table:\n" + |
2924 |
" [pc: 8, pc: 10] local: obj index: 0 type: java.lang.Object\n" + |
3395 |
" [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" + |
2925 |
" [pc: 12, pc: 14] local: obj index: 0 type: java.lang.Object\n" + |
3396 |
" [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n"; |
2926 |
" [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n" |
3397 |
} else { |
2927 |
: " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
3398 |
expectedOutput = " // Method descriptor #15 ()Ljava/lang/Object;\n" + |
2928 |
" // Stack: 2, Locals: 4\n" + |
3399 |
" // Stack: 2, Locals: 3\n" + |
2929 |
" public static java.lang.Object sanityCheckBug();\n" + |
3400 |
" public static java.lang.Object sanityCheckBug();\n" + |
2930 |
" 0 new java.lang.Object [3]\n" + |
3401 |
" 0 new java.lang.Object [3]\n" + |
2931 |
" 3 dup\n" + |
3402 |
" 3 dup\n" + |
2932 |
" 4 invokespecial java.lang.Object() [8]\n" + |
3403 |
" 4 invokespecial java.lang.Object() [8]\n" + |
2933 |
" 7 astore_0 [obj]\n" + |
3404 |
" 7 astore_0 [obj]\n" + |
2934 |
" 8 aload_0 [obj]\n" + |
3405 |
" 8 aload_0 [obj]\n" + |
2935 |
" 9 astore_3\n" + |
3406 |
" 9 astore_2\n" + |
2936 |
" 10 jsr 21\n" + |
3407 |
" 10 aconst_null\n" + |
2937 |
" 13 aload_3\n" + |
3408 |
" 11 astore_0 [obj]\n" + |
2938 |
" 14 areturn\n" + |
3409 |
" 12 aload_2\n" + |
2939 |
" 15 astore_2\n" + |
3410 |
" 13 areturn\n" + |
2940 |
" 16 jsr 21\n" + |
3411 |
" 14 astore_1\n" + |
2941 |
" 19 aload_2\n" + |
3412 |
" 15 aconst_null\n" + |
2942 |
" 20 athrow\n" + |
3413 |
" 16 astore_0 [obj]\n" + |
2943 |
" 21 astore_1\n" + |
3414 |
" 17 aload_1\n" + |
2944 |
" 22 aconst_null\n" + |
3415 |
" 18 athrow\n" + |
2945 |
" 23 astore_0 [obj]\n" + |
|
|
2946 |
" 24 ret 1\n" + |
2947 |
" Exception Table:\n" + |
3416 |
" Exception Table:\n" + |
2948 |
" [pc: 0, pc: 13] -> 15 when : any\n" + |
3417 |
" [pc: 0, pc: 10] -> 14 when : any\n" + |
2949 |
" Line numbers:\n" + |
3418 |
" Line numbers:\n" + |
2950 |
" [pc: 0, line: 5]\n" + |
3419 |
" [pc: 0, line: 5]\n" + |
2951 |
" [pc: 8, line: 6]\n" + |
3420 |
" [pc: 8, line: 6]\n" + |
2952 |
" [pc: 15, line: 7]\n" + |
3421 |
" [pc: 10, line: 8]\n" + |
2953 |
" [pc: 19, line: 9]\n" + |
3422 |
" [pc: 12, line: 6]\n" + |
2954 |
" [pc: 21, line: 7]\n" + |
3423 |
" [pc: 14, line: 7]\n" + |
2955 |
" [pc: 22, line: 8]\n" + |
3424 |
" [pc: 15, line: 8]\n" + |
2956 |
" [pc: 24, line: 9]\n" + |
3425 |
" [pc: 17, line: 9]\n" + |
2957 |
" Local variable table:\n" + |
3426 |
" Local variable table:\n" + |
2958 |
" [pc: 8, pc: 15] local: obj index: 0 type: java.lang.Object\n" + |
3427 |
" [pc: 8, pc: 14] local: obj index: 0 type: java.lang.Object\n" + |
2959 |
" [pc: 24, pc: 26] local: obj index: 0 type: java.lang.Object\n"; |
3428 |
" [pc: 17, pc: 19] local: obj index: 0 type: java.lang.Object\n"; |
|
|
3429 |
} |
3430 |
} |
2960 |
|
3431 |
|
2961 |
try { |
3432 |
try { |
2962 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |
3433 |
File f = new File(OUTPUT_DIR + File.separator + "X.class"); |