diff --git a/NEWS b/NEWS index 79a0f552860..41c7db1cd9b 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,8 @@ PHP NEWS call trampoline). (ilutov) . Fixed bug GH-16509 (Incorrect line number in function redeclaration error). (ilutov) + . Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed + early bound classes). (ilutov) - Curl: . Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if diff --git a/Zend/tests/gh16508.phpt b/Zend/tests/gh16508.phpt new file mode 100644 index 00000000000..e5b89b60290 --- /dev/null +++ b/Zend/tests/gh16508.phpt @@ -0,0 +1,20 @@ +--TEST-- +GH-16508: Missing lineno in inheritance errors of delayed early bound classes +--EXTENSIONS-- +opcache +--INI-- +opcache.enable_cli=1 +--FILE-- + +--EXPECTF-- +Fatal error: Class Test2 contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Test::foo) in %s on line 5 diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 228c5b6e546..6ff886adcfc 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -3410,6 +3410,8 @@ ZEND_API zend_class_entry *zend_try_early_bind(zend_class_entry *ce, zend_class_ CG(current_linking_class) = is_cacheable ? ce : NULL; zend_try{ + CG(zend_lineno) = ce->info.user.line_start; + if (is_cacheable) { zend_begin_record_errors(); }