gh8030-002.phpt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. --TEST--
  2. GH-8030: Segfault with JIT and large match/switch statements 002
  3. --EXTENSIONS--
  4. opcache
  5. --INI--
  6. opcache.enable=1
  7. opcache.enable_cli=1
  8. opcache.jit_buffer_size=1M
  9. opcache.jit=1255
  10. opcache.file_update_protection=0
  11. opcache.revalidate_freq=0
  12. opcache.protect_memory=1
  13. --FILE--
  14. <?php
  15. function 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. }
  533. for ($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--
  541. int(510)
  542. int(513)
  543. int(-1)
  544. int(510)
  545. int(513)
  546. int(-1)
  547. ==DONE==