1
0
mirror of https://github.com/php/php-src.git synced 2026-04-15 12:01:07 +02:00

Fix AST start lineno for list nodes

If the node is initialized with children, check if a child has a
lower start lineno, similar to what we do for fixed-sized nodes
as well.
This commit is contained in:
Nikita Popov
2017-03-17 13:34:18 +01:00
parent 0c8ad36d92
commit 183cd048f1

View File

@@ -155,7 +155,14 @@ ZEND_API zend_ast *zend_ast_create_list(uint32_t init_children, zend_ast_kind ki
uint32_t i;
va_start(va, kind);
for (i = 0; i < init_children; ++i) {
ast = zend_ast_list_add(ast, va_arg(va, zend_ast *));
zend_ast *child = va_arg(va, zend_ast *);
ast = zend_ast_list_add(ast, child);
if (child != NULL) {
uint32_t lineno = zend_ast_get_lineno(child);
if (lineno < ast->lineno) {
ast->lineno = lineno;
}
}
}
va_end(va);
}