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