diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-12-04 11:20:52 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-12-04 11:20:52 +0100 |
commit | fac43d6515adb932083edeacd40f87d6b8393d66 (patch) | |
tree | 0bdadedfaf0e90730e89080f721e742b920d2415 | |
parent | c8e9aa854cb722855dad450bff5815326853ff6a (diff) | |
download | php-git-fac43d6515adb932083edeacd40f87d6b8393d66.tar.gz |
Fix AST printing of nullable builtin types
Fixes oss-fuzz #19109.
-rw-r--r-- | Zend/tests/assert/expect_015.phpt | 4 | ||||
-rw-r--r-- | Zend/zend_ast.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/Zend/tests/assert/expect_015.phpt b/Zend/tests/assert/expect_015.phpt index 72f13ff83f..7f8b0a0935 100644 --- a/Zend/tests/assert/expect_015.phpt +++ b/Zend/tests/assert/expect_015.phpt @@ -94,7 +94,7 @@ L0: } })); -assert(0 && ($a = function &(array &$a, X $b = null) use ($c,&$d) : X { +assert(0 && ($a = function &(?array &$a, X $b = null) use ($c,&$d) : X { class A { use T1, T2 { T1::foo insteadof foo; @@ -244,7 +244,7 @@ Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null) use($c, })) failed in %sexpect_015.php on line %d -Warning: assert(): assert(0 && ($a = function &(array &$a, X $b = null) use($c, &$d): X { +Warning: assert(): assert(0 && ($a = function &(?array &$a, X $b = null) use($c, &$d): X { class A { use T1, T2 { T1::foo insteadof foo; diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index 876200bee8..d007e01480 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -1463,7 +1463,7 @@ simple_list: } break; case ZEND_AST_TYPE: - switch (ast->attr) { + switch (ast->attr & ~ZEND_TYPE_NULLABLE) { case IS_ARRAY: APPEND_STR("array"); case IS_CALLABLE: APPEND_STR("callable"); EMPTY_SWITCH_DEFAULT_CASE(); |