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