1--TEST-- 2JIT Shift Right: 001 3--INI-- 4opcache.enable=1 5opcache.enable_cli=1 6opcache.file_update_protection=0 7opcache.jit_buffer_size=1M 8opcache.protect_memory=1 9--SKIPIF-- 10<?php require_once('skipif.inc'); ?> 11--FILE-- 12<?php 13function shr(int $a, int $b) { 14 return $a >> $b; 15} 16var_dump(shr(256, 0)); 17var_dump(shr(256, 1)); 18var_dump(shr(256, 2)); 19var_dump(shr(-8, 2)); 20try { 21 var_dump(shr(1, 64)); 22} catch (Throwable $e) { 23 echo "Exception " . $e->getMessage() . "\n"; 24} 25try { 26 var_dump(shr(-1, 64)); 27} catch (Throwable $e) { 28 echo "Exception " . $e->getMessage() . "\n"; 29} 30try { 31 var_dump(shr(1, -1)); 32} catch (Throwable $e) { 33 echo "Exception (" . get_class($e) . "): " . $e->getMessage() . "\n"; 34} 35?> 36--EXPECT-- 37int(256) 38int(128) 39int(64) 40int(-2) 41int(0) 42int(-1) 43Exception (ArithmeticError): Bit shift by negative number 44