1 /* 2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @bug 8029383 27 * @summary stack overflow if callee is marked for deoptimization causes crash 28 * 29 * @run main/othervm -XX:TieredStopAtLevel=1 -XX:-BackgroundCompilation 30 * -XX:CompileCommand=dontinline,compiler.uncommontrap.StackOverflowGuardPagesOff::m1 31 * -XX:CompileCommand=exclude,compiler.uncommontrap.StackOverflowGuardPagesOff::m2 32 * -Xss512K -XX:-UseOnStackReplacement 33 * compiler.uncommontrap.StackOverflowGuardPagesOff 34 */ 35 36 package compiler.uncommontrap; 37 38 // This test calls m2 recursively until a stack overflow. Then calls 39 // m3 that calls m1. m1 triggers B's class loading, as a result m1 and 40 // m3 needs to be deoptimized. Deoptimization of m1 causes a stack 41 // overflow exception to be thrown which is propagated to m3 in the 42 // deopt blob. If the guard pages are no enabled, the stack bang in 43 // the deopt blob triggers a crash. 44 public class StackOverflowGuardPagesOff { 45 46 static class A { 47 void m() {} 48 } 49 50 static class B extends A { 51 void m() {} 52 } 53 54 static void m1(boolean deopt, A a) { 55 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, 56 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, 57 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, 58 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, 59 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, 60 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, 61 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84, 62 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96, 63 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107, 64 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117, 65 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127, 66 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137, 67 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147, 68 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157, 69 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167, 70 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177, 71 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187, 72 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197, 73 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207, 74 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217, 75 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227, 76 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237, 77 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247, 78 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257, 79 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267, 80 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277, 81 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287, 82 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297, 83 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307, 84 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317, 85 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327, 86 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337, 87 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347, 88 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357, 89 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367, 90 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377, 91 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387, 92 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397, 93 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407, 94 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417, 95 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427, 96 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437, 97 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447, 98 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457, 99 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467, 100 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477, 101 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487, 102 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497, 103 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507, 104 l508, l509, l510, l511; 105 106 long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12, 107 ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24, 108 ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36, 109 ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48, 110 ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60, 111 ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72, 112 ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84, 113 ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96, 114 ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107, 115 ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117, 116 ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127, 117 ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137, 118 ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147, 119 ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157, 120 ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167, 121 ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177, 122 ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187, 123 ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197, 124 ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207, 125 ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217, 126 ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227, 127 ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237, 128 ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247, 129 ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257, 130 ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267, 131 ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277, 132 ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287, 133 ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297, 134 ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307, 135 ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317, 136 ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327, 137 ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337, 138 ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347, 139 ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357, 140 ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367, 141 ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377, 142 ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387, 143 ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397, 144 ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407, 145 ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417, 146 ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427, 147 ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437, 148 ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447, 149 ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457, 150 ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467, 151 ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477, 152 ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487, 153 ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497, 154 ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507, 155 ll508, ll509, ll510, ll511; 156 157 a.m(); 158 159 if (deopt) { 160 do_load = true; 161 while (!load_done); 162 } 163 } 164 165 static void m2(boolean deopt, A a) { 166 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, 167 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, 168 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, 169 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, 170 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, 171 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, 172 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84, 173 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96, 174 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107, 175 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117, 176 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127, 177 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137, 178 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147, 179 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157, 180 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167, 181 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177, 182 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187, 183 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197, 184 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207, 185 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217, 186 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227, 187 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237, 188 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247, 189 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257, 190 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267, 191 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277, 192 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287, 193 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297, 194 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307, 195 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317, 196 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327, 197 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337, 198 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347, 199 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357, 200 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367, 201 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377, 202 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387, 203 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397, 204 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407, 205 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417, 206 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427, 207 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437, 208 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447, 209 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457, 210 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467, 211 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477, 212 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487, 213 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497, 214 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507, 215 l508, l509, l510, l511; 216 217 try { 218 m2(deopt, a); 219 } catch (StackOverflowError e) { 220 m3(deopt, a); 221 } 222 } 223 224 static void m3(boolean deopt, A a) { 225 long l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, 226 l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, 227 l25, l26, l27, l28, l29, l30, l31, l32, l33, l34, l35, l36, 228 l37, l38, l39, l40, l41, l42, l43, l44, l45, l46, l47, l48, 229 l49, l50, l51, l52, l53, l54, l55, l56, l57, l58, l59, l60, 230 l61, l62, l63, l64, l65, l66, l67, l68, l69, l70, l71, l72, 231 l73, l74, l75, l76, l77, l78, l79, l80, l81, l82, l83, l84, 232 l85, l86, l87, l88, l89, l90, l91, l92, l93, l94, l95, l96, 233 l97, l98, l99, l100, l101, l102, l103, l104, l105, l106, l107, 234 l108, l109, l110, l111, l112, l113, l114, l115, l116, l117, 235 l118, l119, l120, l121, l122, l123, l124, l125, l126, l127, 236 l128, l129, l130, l131, l132, l133, l134, l135, l136, l137, 237 l138, l139, l140, l141, l142, l143, l144, l145, l146, l147, 238 l148, l149, l150, l151, l152, l153, l154, l155, l156, l157, 239 l158, l159, l160, l161, l162, l163, l164, l165, l166, l167, 240 l168, l169, l170, l171, l172, l173, l174, l175, l176, l177, 241 l178, l179, l180, l181, l182, l183, l184, l185, l186, l187, 242 l188, l189, l190, l191, l192, l193, l194, l195, l196, l197, 243 l198, l199, l200, l201, l202, l203, l204, l205, l206, l207, 244 l208, l209, l210, l211, l212, l213, l214, l215, l216, l217, 245 l218, l219, l220, l221, l222, l223, l224, l225, l226, l227, 246 l228, l229, l230, l231, l232, l233, l234, l235, l236, l237, 247 l238, l239, l240, l241, l242, l243, l244, l245, l246, l247, 248 l248, l249, l250, l251, l252, l253, l254, l255, l256, l257, 249 l258, l259, l260, l261, l262, l263, l264, l265, l266, l267, 250 l268, l269, l270, l271, l272, l273, l274, l275, l276, l277, 251 l278, l279, l280, l281, l282, l283, l284, l285, l286, l287, 252 l288, l289, l290, l291, l292, l293, l294, l295, l296, l297, 253 l298, l299, l300, l301, l302, l303, l304, l305, l306, l307, 254 l308, l309, l310, l311, l312, l313, l314, l315, l316, l317, 255 l318, l319, l320, l321, l322, l323, l324, l325, l326, l327, 256 l328, l329, l330, l331, l332, l333, l334, l335, l336, l337, 257 l338, l339, l340, l341, l342, l343, l344, l345, l346, l347, 258 l348, l349, l350, l351, l352, l353, l354, l355, l356, l357, 259 l358, l359, l360, l361, l362, l363, l364, l365, l366, l367, 260 l368, l369, l370, l371, l372, l373, l374, l375, l376, l377, 261 l378, l379, l380, l381, l382, l383, l384, l385, l386, l387, 262 l388, l389, l390, l391, l392, l393, l394, l395, l396, l397, 263 l398, l399, l400, l401, l402, l403, l404, l405, l406, l407, 264 l408, l409, l410, l411, l412, l413, l414, l415, l416, l417, 265 l418, l419, l420, l421, l422, l423, l424, l425, l426, l427, 266 l428, l429, l430, l431, l432, l433, l434, l435, l436, l437, 267 l438, l439, l440, l441, l442, l443, l444, l445, l446, l447, 268 l448, l449, l450, l451, l452, l453, l454, l455, l456, l457, 269 l458, l459, l460, l461, l462, l463, l464, l465, l466, l467, 270 l468, l469, l470, l471, l472, l473, l474, l475, l476, l477, 271 l478, l479, l480, l481, l482, l483, l484, l485, l486, l487, 272 l488, l489, l490, l491, l492, l493, l494, l495, l496, l497, 273 l498, l499, l500, l501, l502, l503, l504, l505, l506, l507, 274 l508, l509, l510, l511; 275 276 long ll0, ll1, ll2, ll3, ll4, ll5, ll6, ll7, ll8, ll9, ll10, ll11, ll12, 277 ll13, ll14, ll15, ll16, ll17, ll18, ll19, ll20, ll21, ll22, ll23, ll24, 278 ll25, ll26, ll27, ll28, ll29, ll30, ll31, ll32, ll33, ll34, ll35, ll36, 279 ll37, ll38, ll39, ll40, ll41, ll42, ll43, ll44, ll45, ll46, ll47, ll48, 280 ll49, ll50, ll51, ll52, ll53, ll54, ll55, ll56, ll57, ll58, ll59, ll60, 281 ll61, ll62, ll63, ll64, ll65, ll66, ll67, ll68, ll69, ll70, ll71, ll72, 282 ll73, ll74, ll75, ll76, ll77, ll78, ll79, ll80, ll81, ll82, ll83, ll84, 283 ll85, ll86, ll87, ll88, ll89, ll90, ll91, ll92, ll93, ll94, ll95, ll96, 284 ll97, ll98, ll99, ll100, ll101, ll102, ll103, ll104, ll105, ll106, ll107, 285 ll108, ll109, ll110, ll111, ll112, ll113, ll114, ll115, ll116, ll117, 286 ll118, ll119, ll120, ll121, ll122, ll123, ll124, ll125, ll126, ll127, 287 ll128, ll129, ll130, ll131, ll132, ll133, ll134, ll135, ll136, ll137, 288 ll138, ll139, ll140, ll141, ll142, ll143, ll144, ll145, ll146, ll147, 289 ll148, ll149, ll150, ll151, ll152, ll153, ll154, ll155, ll156, ll157, 290 ll158, ll159, ll160, ll161, ll162, ll163, ll164, ll165, ll166, ll167, 291 ll168, ll169, ll170, ll171, ll172, ll173, ll174, ll175, ll176, ll177, 292 ll178, ll179, ll180, ll181, ll182, ll183, ll184, ll185, ll186, ll187, 293 ll188, ll189, ll190, ll191, ll192, ll193, ll194, ll195, ll196, ll197, 294 ll198, ll199, ll200, ll201, ll202, ll203, ll204, ll205, ll206, ll207, 295 ll208, ll209, ll210, ll211, ll212, ll213, ll214, ll215, ll216, ll217, 296 ll218, ll219, ll220, ll221, ll222, ll223, ll224, ll225, ll226, ll227, 297 ll228, ll229, ll230, ll231, ll232, ll233, ll234, ll235, ll236, ll237, 298 ll238, ll239, ll240, ll241, ll242, ll243, ll244, ll245, ll246, ll247, 299 ll248, ll249, ll250, ll251, ll252, ll253, ll254, ll255, ll256, ll257, 300 ll258, ll259, ll260, ll261, ll262, ll263, ll264, ll265, ll266, ll267, 301 ll268, ll269, ll270, ll271, ll272, ll273, ll274, ll275, ll276, ll277, 302 ll278, ll279, ll280, ll281, ll282, ll283, ll284, ll285, ll286, ll287, 303 ll288, ll289, ll290, ll291, ll292, ll293, ll294, ll295, ll296, ll297, 304 ll298, ll299, ll300, ll301, ll302, ll303, ll304, ll305, ll306, ll307, 305 ll308, ll309, ll310, ll311, ll312, ll313, ll314, ll315, ll316, ll317, 306 ll318, ll319, ll320, ll321, ll322, ll323, ll324, ll325, ll326, ll327, 307 ll328, ll329, ll330, ll331, ll332, ll333, ll334, ll335, ll336, ll337, 308 ll338, ll339, ll340, ll341, ll342, ll343, ll344, ll345, ll346, ll347, 309 ll348, ll349, ll350, ll351, ll352, ll353, ll354, ll355, ll356, ll357, 310 ll358, ll359, ll360, ll361, ll362, ll363, ll364, ll365, ll366, ll367, 311 ll368, ll369, ll370, ll371, ll372, ll373, ll374, ll375, ll376, ll377, 312 ll378, ll379, ll380, ll381, ll382, ll383, ll384, ll385, ll386, ll387, 313 ll388, ll389, ll390, ll391, ll392, ll393, ll394, ll395, ll396, ll397, 314 ll398, ll399, ll400, ll401, ll402, ll403, ll404, ll405, ll406, ll407, 315 ll408, ll409, ll410, ll411, ll412, ll413, ll414, ll415, ll416, ll417, 316 ll418, ll419, ll420, ll421, ll422, ll423, ll424, ll425, ll426, ll427, 317 ll428, ll429, ll430, ll431, ll432, ll433, ll434, ll435, ll436, ll437, 318 ll438, ll439, ll440, ll441, ll442, ll443, ll444, ll445, ll446, ll447, 319 ll448, ll449, ll450, ll451, ll452, ll453, ll454, ll455, ll456, ll457, 320 ll458, ll459, ll460, ll461, ll462, ll463, ll464, ll465, ll466, ll467, 321 ll468, ll469, ll470, ll471, ll472, ll473, ll474, ll475, ll476, ll477, 322 ll478, ll479, ll480, ll481, ll482, ll483, ll484, ll485, ll486, ll487, 323 ll488, ll489, ll490, ll491, ll492, ll493, ll494, ll495, ll496, ll497, 324 ll498, ll499, ll500, ll501, ll502, ll503, ll504, ll505, ll506, ll507, 325 ll508, ll509, ll510, ll511; 326 327 a.m(); 328 329 m1(deopt, a); 330 } 331 332 // Used for synchronization betwen main thread and thread 333 // responsible for class loading 334 static volatile boolean thread_started = false; 335 static volatile boolean do_load = false; 336 static volatile boolean load_done = false; 337 338 static public void main(String[] args) { 339 // This thread does the loading of B. If m1 does it, the class 340 // loading can cause stack overflows. 341 Thread thread = new Thread() { 342 public void run() { 343 thread_started = true; 344 while(!do_load); 345 new B(); 346 load_done = true; 347 } 348 }; 349 thread.start(); 350 while(!thread_started); 351 // get m3 and m1 compiled 352 A a = new A(); 353 for (int i = 0; i < 5000; i++) { 354 m3(false, a); 355 m1(false, a); 356 } 357 m2(true, a); 358 359 System.out.println("TEST PASSED"); 360 } 361 }