com php-src: Ensure __LINE__ is always accurate : Zend/tests/line_const_in_array.phpt Zend/zend _compile.c
| From: | Nikita Popov | Date: | Sun, 12 Oct 2014 18:55:52 +0000 |
| Subject: | com php-src: Ensure __LINE__ is always accurate : Zend/tests/line_const_in_array.phpt Zend/zend _compile.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82257@lists.php.net to get a copy of this message | ||
Commit: 0b09ba84b912be90c06d8d5ffab55bf850c3070b
Author: Nikita Popov <nikic@php.net> Sun, 12 Oct 2014 20:54:45 +0200
Parents: b7e139a59ca7962c98ce1eb75150dd131978b41d
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0b09ba84b912be90c06d8d5ffab55bf850c3070b
Log:
Ensure __LINE__ is always accurate
Changed paths:
A Zend/tests/line_const_in_array.phpt
M Zend/zend_compile.c
Diff:
diff --git a/Zend/tests/line_const_in_array.phpt b/Zend/tests/line_const_in_array.phpt
new file mode 100644
index 0000000...181f67e
--- /dev/null
+++ b/Zend/tests/line_const_in_array.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Use of __LINE__ in arrays
+--FILE--
+<?php
+
+var_dump([
+ __LINE__,
+ __LINE__,
+ __LINE__,
+]);
+
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ int(4)
+ [1]=>
+ int(5)
+ [2]=>
+ int(6)
+}
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index e242bac..5d3ee24 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4917,7 +4917,7 @@ static zend_bool zend_try_ct_eval_magic_const(zval *zv, zend_ast *ast
TSRMLS_DC)
switch (ast->attr) {
case T_LINE:
- ZVAL_LONG(zv, CG(zend_lineno));
+ ZVAL_LONG(zv, ast->lineno);
break;
case T_FILE:
ZVAL_STR_COPY(zv, CG(compiled_filename));