]> granicus.if.org Git - php/commitdiff
[ast] Fix exporting **= in expansion of assign op
authorSara Golemon <pollita@php.net>
Sat, 6 Aug 2016 22:12:09 +0000 (15:12 -0700)
committerAnatol Belski <ab@php.net>
Sun, 8 Jan 2017 17:43:47 +0000 (18:43 +0100)
(cherry picked from commit 9c3865eb6a72a6f369ba524c5a87b4896a3a9acb)

Zend/tests/ast/zend-pow-assign.phpt [new file with mode: 0644]
Zend/zend_ast.c

diff --git a/Zend/tests/ast/zend-pow-assign.phpt b/Zend/tests/ast/zend-pow-assign.phpt
new file mode 100644 (file)
index 0000000..d978e77
--- /dev/null
@@ -0,0 +1,11 @@
+--TEST--
+ZEND_POW_ASSIGN
+--INI--
+zend.assertions=1
+--FILE--
+<?php
+
+assert_options(ASSERT_WARNING);
+assert(false && ($a **= 2));
+--EXPECTF--
+Warning: assert(): assert(false && ($a **= 2)) failed in %s%ezend-pow-assign.php on line %d
index 26844325fa974aa12b505c4a1e5f954e14636fac..c97e1c4ffe0728882bdfe037c8a0afe2936a24a2 100644 (file)
@@ -1344,7 +1344,7 @@ simple_list:
                                case ZEND_ASSIGN_BW_OR:  BINARY_OP(" |= ",  90, 91, 90);
                                case ZEND_ASSIGN_BW_AND: BINARY_OP(" &= ",  90, 91, 90);
                                case ZEND_ASSIGN_BW_XOR: BINARY_OP(" ^= ",  90, 91, 90);
-                               case ZEND_POW:           BINARY_OP(" **= ", 90, 91, 90);
+                               case ZEND_ASSIGN_POW:    BINARY_OP(" **= ", 90, 91, 90);
                                EMPTY_SWITCH_DEFAULT_CASE();
                        }
                        break;