summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_ast.c2
-rw-r--r--tests/classes/constants_error_002.phpt12
2 files changed, 8 insertions, 6 deletions
diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c
index d7fbba1215..583a52321b 100644
--- a/Zend/zend_ast.c
+++ b/Zend/zend_ast.c
@@ -351,9 +351,11 @@ ZEND_API zend_ast *zend_ast_copy(zend_ast *ast)
zend_ast *new = emalloc(sizeof(zend_ast) + sizeof(zend_ast*) * (ast->children - 1));
int i;
new->kind = ast->kind;
+ new->children = ast->children;
for (i = 0; i < ast->children; i++) {
(&new->u.child)[i] = zend_ast_copy((&ast->u.child)[i]);
}
+ return new;
}
return zend_ast_create_dynamic(ast->kind);
}
diff --git a/tests/classes/constants_error_002.phpt b/tests/classes/constants_error_002.phpt
index be27971b87..610a42da9b 100644
--- a/tests/classes/constants_error_002.phpt
+++ b/tests/classes/constants_error_002.phpt
@@ -2,11 +2,11 @@
Error case: class constant as an array
--FILE--
<?php
- class myclass
- {
- const myConst = array();
- }
+class myclass
+{
+ const myConst = array();
+}
?>
+===DONE===
--EXPECTF--
-
-Fatal error: Arrays are not allowed in class constants in %s on line 4
+===DONE===