return &((zend_ast_zval *) ast)->val;
}
static zend_always_inline zend_string *zend_ast_get_str(zend_ast *ast) {
- return Z_STR_P(zend_ast_get_zval(ast));
+ zval *zv = zend_ast_get_zval(ast);
+ ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
+ return Z_STR_P(zv);
}
static zend_always_inline uint32_t zend_ast_get_num_children(zend_ast *ast) {
zend_ast *ast = *ast_ptr;
zend_ast *class_ast = ast->child[0];
zend_ast *const_ast = ast->child[1];
- zend_string *class_name = zend_ast_get_str(class_ast);
+ zend_string *class_name;
zend_string *const_name = zend_ast_get_str(const_ast);
zval result;
int fetch_type;
"Dynamic class names are not allowed in compile-time class constant references");
}
+ class_name = zend_ast_get_str(class_ast);
fetch_type = zend_get_class_fetch_type(class_name);
if (ZEND_FETCH_CLASS_STATIC == fetch_type) {