Bug #69832 [Asn]: Assertion failed in zend_compile_const_expr_magic_const

From: Date: Mon, 15 Jun 2015 05:08:19 +0000
Subject: Bug #69832 [Asn]: Assertion failed in zend_compile_const_expr_magic_const
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-193496@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=69832&edit=1 ID: 69832 Updated by: laruence@php.net Reported by: bugs dot php dot net at majkl578 dot cz Summary: Assertion failed in zend_compile_const_expr_magic_const Status: Assigned Type: Bug Package: Reproducible crash Operating System: Linux x86_64 PHP Version: 7.0Git-2015-06-15 (Git) Assigned To: nikic Block user comment: N Private report: N New Comment: seems simply remove the trait assertion fix it.. diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 6164242..be89550 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -6737,10 +6737,7 @@ void zend_compile_const_expr_magic_const(zend_ast **ast_ptr) /* {{{ */ { zend_ast *ast = *ast_ptr; - /* Other cases already resolved by constant folding */ - ZEND_ASSERT(ast->attr == T_CLASS_C && - CG(active_class_entry) && - (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT) != 0); + ZEND_ASSERT(ast->attr == T_CLASS_C && CG(active_class_entry)); { zval const_zv; Previous Comments: ------------------------------------------------------------------------ [2015-06-15 00:23:22] bugs dot php dot net at majkl578 dot cz Description: ------------ PHP built from 6cb7b48846d129f088b50c4a8c4b00b7dc886f5c in DEBUG mode. Test script: --------------- <?php class Test { public static $foo = [ self::A => 'foo', self::B => [__CLASS__, 'foo'], ]; } Expected result: ---------------- No crash. Actual result: -------------- Crash, assertion failed: php: /build/php/php-src/Zend/zend_compile.c:6743: void zend_compile_const_expr_magic_const(zend_ast **): Assertion `ast->attr == 373 && (compiler_globals.active_class_entry) && ((compiler_globals.active_class_entry)->ce_flags & 0x80) != 0' failed. Backtrace: Program received signal SIGABRT, Aborted. 0x00007ffff0906107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. #0 0x00007ffff0906107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff09074e8 in __GI_abort () at abort.c:89 #2 0x00007ffff08ff226 in __assert_fail_base (fmt=0x7ffff0a35948 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x124ec2b "ast->attr == 373 && (compiler_globals.active_class_entry) && ((compiler_globals.active_class_entry)->ce_flags & 0x80) != 0", file=file@entry=0x124d4e9 "/build/php/php-src/Zend/zend_compile.c", line=line@entry=6743, function=function@entry=0x124ed5b "void zend_compile_const_expr_magic_const(zend_ast **)") at assert.c:92 #3 0x00007ffff08ff2d2 in __GI___assert_fail (assertion=0x124ec2b "ast->attr == 373 && (compiler_globals.active_class_entry) && ((compiler_globals.active_class_entry)->ce_flags & 0x80) != 0", file=0x124d4e9 "/build/php/php-src/Zend/zend_compile.c", line=6743, function=0x124ed5b "void zend_compile_const_expr_magic_const(zend_ast **)") at assert.c:101 #4 0x0000000000be02f3 in zend_compile_const_expr_magic_const (ast_ptr=0x7fffeb2781a8) at Zend/zend_compile.c:6741 #5 0x0000000000be040c in zend_compile_const_expr (ast_ptr=0x7fffeb2781a8) at Zend/zend_compile.c:6775 #6 0x0000000000c50379 in zend_ast_apply (ast=0x7fffeb2781a0, fn=0xbe0340 <zend_compile_const_expr>) at Zend/zend_ast.c:514 #7 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb2781c8) at Zend/zend_compile.c:6778 #8 0x0000000000c50325 in zend_ast_apply (ast=0x7fffeb2781b8, fn=0xbe0340 <zend_compile_const_expr>) at Zend/zend_ast.c:509 #9 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb278220) at Zend/zend_compile.c:6778 #10 0x0000000000c50379 in zend_ast_apply (ast=0x7fffeb278218, fn=0xbe0340 <zend_compile_const_expr>) at Zend/zend_ast.c:514 #11 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb278138) at Zend/zend_compile.c:6778 #12 0x0000000000c50325 in zend_ast_apply (ast=0x7fffeb278120, fn=0xbe0340 <zend_compile_const_expr>) at Zend/zend_ast.c:509 #13 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffffff9d40) at Zend/zend_compile.c:6778 #14 0x0000000000bd44ed in zend_const_expr_to_zval (result=0x7fffffff9d70, ast=0x7fffeb278120) at Zend/zend_compile.c:6788 #15 0x0000000000bd99b2 in zend_compile_prop_decl (ast=0x7fffeb278248) at Zend/zend_compile.c:4762 #16 0x0000000000bd5671 in zend_compile_stmt (ast=0x7fffeb278248) at Zend/zend_compile.c:6899 #17 0x0000000000bd77a3 in zend_compile_stmt_list (ast=0x7fffeb278060) at Zend/zend_compile.c:4195 #18 0x0000000000bd5563 in zend_compile_stmt (ast=0x7fffeb278060) at Zend/zend_compile.c:6840 #19 0x0000000000bd3d23 in zend_compile_class_decl (ast=0x7fffeb278278) at Zend/zend_compile.c:5106 #20 0x0000000000bd569b in zend_compile_stmt (ast=0x7fffeb278278) at Zend/zend_compile.c:6908 #21 0x0000000000bdb807 in zend_compile_top_stmt (ast=0x7fffeb278278) at Zend/zend_compile.c:6818 #22 0x0000000000bdb7e9 in zend_compile_top_stmt (ast=0x7fffeb278018) at Zend/zend_compile.c:6813 #23 0x0000000000ba0992 in compile_file (file_handle=0x7fffffffdfa8, type=8) at Zend/zend_language_scanner.l:607 #24 0x00000000008b4a12 in phar_compile_file (file_handle=0x7fffffffdfa8, type=8) at ext/phar/phar.c:3310 #25 0x0000000000c04420 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at Zend/zend.c:1383 #26 0x0000000000b5a052 in php_execute_script (primary_file=0x7fffffffdfa8) at main/main.c:2475 #27 0x0000000000cf6f3a in do_cli (argc=2, argv=0x15fad80) at sapi/cli/php_cli.c:967 #28 0x0000000000cf5e3a in main (argc=2, argv=0x15fad80) at sapi/cli/php_cli.c:1334 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=69832&edit=1

« previous php.bugs (#193496) next »