diff options
| author | Xinchen Hui <laruence@gmail.com> | 2017-11-25 00:54:28 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@gmail.com> | 2017-11-25 00:54:28 +0800 |
| commit | a84c7050fd7ee9e737c7cfe5b2405f939d32a291 (patch) | |
| tree | 781f1699d753be9e164adbd0afd19a8b2a730ccf | |
| parent | ec2dde0c0be7c13a8d85980e1696176b7292e80b (diff) | |
| parent | c412b8b3844b1881a952e1340dba23288a943f96 (diff) | |
| download | php-git-a84c7050fd7ee9e737c7cfe5b2405f939d32a291.tar.gz | |
Merge branch 'PHP-7.2'
* PHP-7.2:
Fixed bug #75556 (Invalid opcode 138/1/1)
| -rw-r--r-- | ext/opcache/Optimizer/zend_optimizer.c | 2 | ||||
| -rw-r--r-- | ext/opcache/tests/bug75556.phpt | 26 |
2 files changed, 28 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index 1e5b4a2a73..fb4013780d 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -306,6 +306,8 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array, /* This would require a non-local change. * zend_optimizer_replace_by_const() supports this. */ return 0; + case ZEND_INSTANCEOF: + return 0; case ZEND_CASE: case ZEND_FETCH_LIST: return 0; diff --git a/ext/opcache/tests/bug75556.phpt b/ext/opcache/tests/bug75556.phpt new file mode 100644 index 0000000000..1b2511c580 --- /dev/null +++ b/ext/opcache/tests/bug75556.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #75556 (Invalid opcode 138/1/1) +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php + function createFromFormat($format, $date, ?\DateTimeZone $tz = null): ?\DateTimeInterface + { + if ($tz !== null + || ($tz instanceof \DateTimeZone && !in_array($tz->getName(), ['UTC', 'Z'], true)) + ) { + $msg = 'Date objects must have UTC as their timezone'; + throw new \UnexpectedValueException($msg); + } + + return null; +} + +var_dump(createFromFormat('m/d/Y', '12/07/2017', null)); +?> +--EXPECT-- +NULL |
