summaryrefslogtreecommitdiff
path: root/ext/opcache/tests/jit/bug80745.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/opcache/tests/jit/bug80745.phpt')
-rw-r--r--ext/opcache/tests/jit/bug80745.phpt43
1 files changed, 43 insertions, 0 deletions
diff --git a/ext/opcache/tests/jit/bug80745.phpt b/ext/opcache/tests/jit/bug80745.phpt
new file mode 100644
index 0000000000..66956f4139
--- /dev/null
+++ b/ext/opcache/tests/jit/bug80745.phpt
@@ -0,0 +1,43 @@
+--TEST--
+Bug #80745 (JIT produces Assert failure and UNKNOWN:0 var_dumps in code involving bitshifts)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.file_update_protection=0
+opcache.jit=function
+opcache.jit_buffer_size=1M
+opcache.protect_memory=1
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+final class Message
+{
+ public $qr = false;
+
+ public $opcode = 0;
+
+ public $aa = false;
+}
+
+echo "Starting...\n";
+
+function headerToBinary(Message $message)
+{
+ $flags = 0;
+ $flags = ($flags << 1) | ($message->qr ? 1 : 0);
+ $flags = ($flags << 4) | $message->opcode;
+ var_dump($flags);
+ $flags = ($flags << 1) | ($message->aa ? 1 : 0);
+}
+
+headerToBinary(new Message());
+
+echo "PROBLEM NOT REPRODUCED !\n";
+?>
+--EXPECT--
+Starting...
+int(0)
+PROBLEM NOT REPRODUCED !
+