summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-12-17 15:50:24 +0000
committerMarcus Boerger <helly@php.net>2005-12-17 15:50:24 +0000
commit170918c6eb8af7e96d4329bced2e40a6e339b13a (patch)
tree3055e12b008d250577d9a261553783dfc8dd97de /Zend
parent5d60cbc498b1e174273c918fc337a79fce968857 (diff)
downloadphp-git-170918c6eb8af7e96d4329bced2e40a6e339b13a.tar.gz
- Fix Bug #35720 A final constructor can be overwritten
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_compile.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index ff20c63625..8532fcb46f 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1941,6 +1941,12 @@ static void do_inherit_parent_constructor(zend_class_entry *ce TSRMLS_DC)
ce->destructor = ce->parent->destructor;
}
if (ce->constructor) {
+ if (ce->parent->constructor && ce->parent->constructor->common.fn_flags & ZEND_ACC_FINAL) {
+ zend_error(E_ERROR, "Cannot override final %v::%v() with %v::%v()",
+ ce->parent->name, ce->parent->constructor->common.function_name,
+ ce->name, ce->constructor->common.function_name
+ );
+ }
return;
}