xref: /PHP-8.1/ext/opcache/tests/jit/gh8030-002.phpt (revision f2381ae4)
1--TEST--
2GH-8030: Segfault with JIT and large match/switch statements 002
3--EXTENSIONS--
4opcache
5--INI--
6opcache.enable=1
7opcache.enable_cli=1
8opcache.jit_buffer_size=1M
9opcache.jit=1255
10opcache.file_update_protection=0
11opcache.revalidate_freq=0
12opcache.protect_memory=1
13--FILE--
14<?php
15function lookup($s){
16    switch($s){
17        case 1: return 1;
18        case 2: return 2;
19        case 3: return 3;
20        case 4: return 4;
21        case 5: return 5;
22        case 6: return 6;
23        case 7: return 7;
24        case 8: return 8;
25        case 9: return 9;
26        case 10: return 10;
27        case 11: return 11;
28        case 12: return 12;
29        case 13: return 13;
30        case 14: return 14;
31        case 15: return 15;
32        case 16: return 16;
33        case 17: return 17;
34        case 18: return 18;
35        case 19: return 19;
36        case 20: return 20;
37        case 21: return 21;
38        case 22: return 22;
39        case 23: return 23;
40        case 24: return 24;
41        case 25: return 25;
42        case 26: return 26;
43        case 27: return 27;
44        case 28: return 28;
45        case 29: return 29;
46        case 30: return 30;
47        case 31: return 31;
48        case 32: return 32;
49        case 33: return 33;
50        case 34: return 34;
51        case 35: return 35;
52        case 36: return 36;
53        case 37: return 37;
54        case 38: return 38;
55        case 39: return 39;
56        case 40: return 40;
57        case 41: return 41;
58        case 42: return 42;
59        case 43: return 43;
60        case 44: return 44;
61        case 45: return 45;
62        case 46: return 46;
63        case 47: return 47;
64        case 48: return 48;
65        case 49: return 49;
66        case 50: return 50;
67        case 51: return 51;
68        case 52: return 52;
69        case 53: return 53;
70        case 54: return 54;
71        case 55: return 55;
72        case 56: return 56;
73        case 57: return 57;
74        case 58: return 58;
75        case 59: return 59;
76        case 60: return 60;
77        case 61: return 61;
78        case 62: return 62;
79        case 63: return 63;
80        case 64: return 64;
81        case 65: return 65;
82        case 66: return 66;
83        case 67: return 67;
84        case 68: return 68;
85        case 69: return 69;
86        case 70: return 70;
87        case 71: return 71;
88        case 72: return 72;
89        case 73: return 73;
90        case 74: return 74;
91        case 75: return 75;
92        case 76: return 76;
93        case 77: return 77;
94        case 78: return 78;
95        case 79: return 79;
96        case 80: return 80;
97        case 81: return 81;
98        case 82: return 82;
99        case 83: return 83;
100        case 84: return 84;
101        case 85: return 85;
102        case 86: return 86;
103        case 87: return 87;
104        case 88: return 88;
105        case 89: return 89;
106        case 90: return 90;
107        case 91: return 91;
108        case 92: return 92;
109        case 93: return 93;
110        case 94: return 94;
111        case 95: return 95;
112        case 96: return 96;
113        case 97: return 97;
114        case 98: return 98;
115        case 99: return 99;
116        case 100: return 100;
117        case 101: return 101;
118        case 102: return 102;
119        case 103: return 103;
120        case 104: return 104;
121        case 105: return 105;
122        case 106: return 106;
123        case 107: return 107;
124        case 108: return 108;
125        case 109: return 109;
126        case 110: return 110;
127        case 111: return 111;
128        case 112: return 112;
129        case 113: return 113;
130        case 114: return 114;
131        case 115: return 115;
132        case 116: return 116;
133        case 117: return 117;
134        case 118: return 118;
135        case 119: return 119;
136        case 120: return 120;
137        case 121: return 121;
138        case 122: return 122;
139        case 123: return 123;
140        case 124: return 124;
141        case 125: return 125;
142        case 126: return 126;
143        case 127: return 127;
144        case 128: return 128;
145        case 129: return 129;
146        case 130: return 130;
147        case 131: return 131;
148        case 132: return 132;
149        case 133: return 133;
150        case 134: return 134;
151        case 135: return 135;
152        case 136: return 136;
153        case 137: return 137;
154        case 138: return 138;
155        case 139: return 139;
156        case 140: return 140;
157        case 141: return 141;
158        case 142: return 142;
159        case 143: return 143;
160        case 144: return 144;
161        case 145: return 145;
162        case 146: return 146;
163        case 147: return 147;
164        case 148: return 148;
165        case 149: return 149;
166        case 150: return 150;
167        case 151: return 151;
168        case 152: return 152;
169        case 153: return 153;
170        case 154: return 154;
171        case 155: return 155;
172        case 156: return 156;
173        case 157: return 157;
174        case 158: return 158;
175        case 159: return 159;
176        case 160: return 160;
177        case 161: return 161;
178        case 162: return 162;
179        case 163: return 163;
180        case 164: return 164;
181        case 165: return 165;
182        case 166: return 166;
183        case 167: return 167;
184        case 168: return 168;
185        case 169: return 169;
186        case 170: return 170;
187        case 171: return 171;
188        case 172: return 172;
189        case 173: return 173;
190        case 174: return 174;
191        case 175: return 175;
192        case 176: return 176;
193        case 177: return 177;
194        case 178: return 178;
195        case 179: return 179;
196        case 180: return 180;
197        case 181: return 181;
198        case 182: return 182;
199        case 183: return 183;
200        case 184: return 184;
201        case 185: return 185;
202        case 186: return 186;
203        case 187: return 187;
204        case 188: return 188;
205        case 189: return 189;
206        case 190: return 190;
207        case 191: return 191;
208        case 192: return 192;
209        case 193: return 193;
210        case 194: return 194;
211        case 195: return 195;
212        case 196: return 196;
213        case 197: return 197;
214        case 198: return 198;
215        case 199: return 199;
216        case 200: return 200;
217        case 201: return 201;
218        case 202: return 202;
219        case 203: return 203;
220        case 204: return 204;
221        case 205: return 205;
222        case 206: return 206;
223        case 207: return 207;
224        case 208: return 208;
225        case 209: return 209;
226        case 210: return 210;
227        case 211: return 211;
228        case 212: return 212;
229        case 213: return 213;
230        case 214: return 214;
231        case 215: return 215;
232        case 216: return 216;
233        case 217: return 217;
234        case 218: return 218;
235        case 219: return 219;
236        case 220: return 220;
237        case 221: return 221;
238        case 222: return 222;
239        case 223: return 223;
240        case 224: return 224;
241        case 225: return 225;
242        case 226: return 226;
243        case 227: return 227;
244        case 228: return 228;
245        case 229: return 229;
246        case 230: return 230;
247        case 231: return 231;
248        case 232: return 232;
249        case 233: return 233;
250        case 234: return 234;
251        case 235: return 235;
252        case 236: return 236;
253        case 237: return 237;
254        case 238: return 238;
255        case 239: return 239;
256        case 240: return 240;
257        case 241: return 241;
258        case 242: return 242;
259        case 243: return 243;
260        case 244: return 244;
261        case 245: return 245;
262        case 246: return 246;
263        case 247: return 247;
264        case 248: return 248;
265        case 249: return 249;
266        case 250: return 250;
267        case 251: return 251;
268        case 252: return 252;
269        case 253: return 253;
270        case 254: return 254;
271        case 255: return 255;
272        case 256: return 256;
273        case 257: return 257;
274        case 258: return 258;
275        case 259: return 259;
276        case 260: return 260;
277        case 261: return 261;
278        case 262: return 262;
279        case 263: return 263;
280        case 264: return 264;
281        case 265: return 265;
282        case 266: return 266;
283        case 267: return 267;
284        case 268: return 268;
285        case 269: return 269;
286        case 270: return 270;
287        case 271: return 271;
288        case 272: return 272;
289        case 273: return 273;
290        case 274: return 274;
291        case 275: return 275;
292        case 276: return 276;
293        case 277: return 277;
294        case 278: return 278;
295        case 279: return 279;
296        case 280: return 280;
297        case 281: return 281;
298        case 282: return 282;
299        case 283: return 283;
300        case 284: return 284;
301        case 285: return 285;
302        case 286: return 286;
303        case 287: return 287;
304        case 288: return 288;
305        case 289: return 289;
306        case 290: return 290;
307        case 291: return 291;
308        case 292: return 292;
309        case 293: return 293;
310        case 294: return 294;
311        case 295: return 295;
312        case 296: return 296;
313        case 297: return 297;
314        case 298: return 298;
315        case 299: return 299;
316        case 300: return 300;
317        case 301: return 301;
318        case 302: return 302;
319        case 303: return 303;
320        case 304: return 304;
321        case 305: return 305;
322        case 306: return 306;
323        case 307: return 307;
324        case 308: return 308;
325        case 309: return 309;
326        case 310: return 310;
327        case 311: return 311;
328        case 312: return 312;
329        case 313: return 313;
330        case 314: return 314;
331        case 315: return 315;
332        case 316: return 316;
333        case 317: return 317;
334        case 318: return 318;
335        case 319: return 319;
336        case 320: return 320;
337        case 321: return 321;
338        case 322: return 322;
339        case 323: return 323;
340        case 324: return 324;
341        case 325: return 325;
342        case 326: return 326;
343        case 327: return 327;
344        case 328: return 328;
345        case 329: return 329;
346        case 330: return 330;
347        case 331: return 331;
348        case 332: return 332;
349        case 333: return 333;
350        case 334: return 334;
351        case 335: return 335;
352        case 336: return 336;
353        case 337: return 337;
354        case 338: return 338;
355        case 339: return 339;
356        case 340: return 340;
357        case 341: return 341;
358        case 342: return 342;
359        case 343: return 343;
360        case 344: return 344;
361        case 345: return 345;
362        case 346: return 346;
363        case 347: return 347;
364        case 348: return 348;
365        case 349: return 349;
366        case 350: return 350;
367        case 351: return 351;
368        case 352: return 352;
369        case 353: return 353;
370        case 354: return 354;
371        case 355: return 355;
372        case 356: return 356;
373        case 357: return 357;
374        case 358: return 358;
375        case 359: return 359;
376        case 360: return 360;
377        case 361: return 361;
378        case 362: return 362;
379        case 363: return 363;
380        case 364: return 364;
381        case 365: return 365;
382        case 366: return 366;
383        case 367: return 367;
384        case 368: return 368;
385        case 369: return 369;
386        case 370: return 370;
387        case 371: return 371;
388        case 372: return 372;
389        case 373: return 373;
390        case 374: return 374;
391        case 375: return 375;
392        case 376: return 376;
393        case 377: return 377;
394        case 378: return 378;
395        case 379: return 379;
396        case 380: return 380;
397        case 381: return 381;
398        case 382: return 382;
399        case 383: return 383;
400        case 384: return 384;
401        case 385: return 385;
402        case 386: return 386;
403        case 387: return 387;
404        case 388: return 388;
405        case 389: return 389;
406        case 390: return 390;
407        case 391: return 391;
408        case 392: return 392;
409        case 393: return 393;
410        case 394: return 394;
411        case 395: return 395;
412        case 396: return 396;
413        case 397: return 397;
414        case 398: return 398;
415        case 399: return 399;
416        case 400: return 400;
417        case 401: return 401;
418        case 402: return 402;
419        case 403: return 403;
420        case 404: return 404;
421        case 405: return 405;
422        case 406: return 406;
423        case 407: return 407;
424        case 408: return 408;
425        case 409: return 409;
426        case 410: return 410;
427        case 411: return 411;
428        case 412: return 412;
429        case 413: return 413;
430        case 414: return 414;
431        case 415: return 415;
432        case 416: return 416;
433        case 417: return 417;
434        case 418: return 418;
435        case 419: return 419;
436        case 420: return 420;
437        case 421: return 421;
438        case 422: return 422;
439        case 423: return 423;
440        case 424: return 424;
441        case 425: return 425;
442        case 426: return 426;
443        case 427: return 427;
444        case 428: return 428;
445        case 429: return 429;
446        case 430: return 430;
447        case 431: return 431;
448        case 432: return 432;
449        case 433: return 433;
450        case 434: return 434;
451        case 435: return 435;
452        case 436: return 436;
453        case 437: return 437;
454        case 438: return 438;
455        case 439: return 439;
456        case 440: return 440;
457        case 441: return 441;
458        case 442: return 442;
459        case 443: return 443;
460        case 444: return 444;
461        case 445: return 445;
462        case 446: return 446;
463        case 447: return 447;
464        case 448: return 448;
465        case 449: return 449;
466        case 450: return 450;
467        case 451: return 451;
468        case 452: return 452;
469        case 453: return 453;
470        case 454: return 454;
471        case 455: return 455;
472        case 456: return 456;
473        case 457: return 457;
474        case 458: return 458;
475        case 459: return 459;
476        case 460: return 460;
477        case 461: return 461;
478        case 462: return 462;
479        case 463: return 463;
480        case 464: return 464;
481        case 465: return 465;
482        case 466: return 466;
483        case 467: return 467;
484        case 468: return 468;
485        case 469: return 469;
486        case 470: return 470;
487        case 471: return 471;
488        case 472: return 472;
489        case 473: return 473;
490        case 474: return 474;
491        case 475: return 475;
492        case 476: return 476;
493        case 477: return 477;
494        case 478: return 478;
495        case 479: return 479;
496        case 480: return 480;
497        case 481: return 481;
498        case 482: return 482;
499        case 483: return 483;
500        case 484: return 484;
501        case 485: return 485;
502        case 486: return 486;
503        case 487: return 487;
504        case 488: return 488;
505        case 489: return 489;
506        case 490: return 490;
507        case 491: return 491;
508        case 492: return 492;
509        case 493: return 493;
510        case 494: return 494;
511        case 495: return 495;
512        case 496: return 496;
513        case 497: return 497;
514        case 498: return 498;
515        case 499: return 499;
516        case 500: return 500;
517        case 501: return 501;
518        case 502: return 502;
519        case 503: return 503;
520        case 504: return 504;
521        case 505: return 505;
522        case 506: return 506;
523        case 507: return 507;
524        case 508: return 508;
525        case 509: return 509;
526        case 510: return 510;
527        case 511: return 511;
528        case 512: return 512;
529        case 513: return 513;
530        default: return -1;
531    };
532}
533for ($i=0; $i<2; $i++){
534    var_dump(lookup(510));
535    var_dump(lookup(513));
536    var_dump(lookup(-1));
537}
538?>
539==DONE==
540--EXPECT--
541int(510)
542int(513)
543int(-1)
544int(510)
545int(513)
546int(-1)
547==DONE==
548