summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2004-01-14 14:00:11 +0000
committerZeev Suraski <zeev@php.net>2004-01-14 14:00:11 +0000
commit59d168eda7c1d63ecb063af8a3f70b49c000a181 (patch)
treeff7609a21a2ecc779072604d8ffb734973d50b73 /Zend/zend_compile.c
parent8f0ea19fcb4baa90edda4422cf376ec583cff96c (diff)
downloadphp-git-59d168eda7c1d63ecb063af8a3f70b49c000a181.tar.gz
Don't allow interfaces to implement anything
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index bec6dee9f3..9432407abd 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2420,6 +2420,10 @@ void zend_do_implements_interface(znode *interface_znode TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+ if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
+ zend_error(E_COMPILE_ERROR, "Interfaces cannot implement other classes/interfaces");
+ }
+
opline->opcode = ZEND_ADD_INTERFACE;
opline->op1 = CG(implementing_class);
opline->op2 = *interface_znode;