]> granicus.if.org Git - php/commitdiff
Improve accuracy of opline lineno information
authorNikita Popov <nikita.ppv@gmail.com>
Sat, 15 Apr 2017 16:06:42 +0000 (18:06 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Sat, 15 Apr 2017 16:15:24 +0000 (18:15 +0200)
If compile_var() was used instead of compile_expr() we did not
update the current lineno.

Zend/tests/bug72101.phpt
Zend/zend_compile.c

index a04425cee405643e6a55ac81bbbb586b3087d6e2..8782b8e26463efc292f56a775c59477dd2fac35d 100644 (file)
@@ -79,7 +79,7 @@ Stack trace:
 #0 %sbug72101.php(8): {closure}(2, 'Parameter 1 to ...', '%s', 8, Array)
 #1 %sbug72101.php(27): PHPUnit_Framework_MockObject_Stub_ReturnCallback->invoke(Object(PHPUnit_Framework_MockObject_Invocation_Static))
 #2 %sbug72101.php(19): PHPUnit_Framework_MockObject_Matcher->invoked(Object(PHPUnit_Framework_MockObject_Invocation_Static))
-#3 %sbug72101.php(51): PHPUnit_Framework_MockObject_InvocationMocker->invoke(Object(PHPUnit_Framework_MockObject_Invocation_Static))
+#3 %sbug72101.php(52): PHPUnit_Framework_MockObject_InvocationMocker->invoke(Object(PHPUnit_Framework_MockObject_Invocation_Static))
 #4 %sbug72101.php(72): Mock_MethodCallbackByReference_7b180d26->bar(0, 0, 0)
 #5 {main}
   thrown in %sbug72101.php on line 61
index f3c04b9d1cc87d774de8fa915293c241503255e4..9e0621d7837252954254d89deae87a5fd9ca3931 100644 (file)
@@ -7314,6 +7314,8 @@ void zend_compile_expr(znode *result, zend_ast *ast) /* {{{ */
 
 void zend_compile_var(znode *result, zend_ast *ast, uint32_t type) /* {{{ */
 {
+       CG(zend_lineno) = zend_ast_get_lineno(ast);
+
        switch (ast->kind) {
                case ZEND_AST_VAR:
                        zend_compile_simple_var(result, ast, type, 0);