47#if defined(HAVE_LIBXML) && !defined(PHP_WIN32)
48# include <libxml/globals.h>
49# include <libxml/parser.h>
65static zend_class_entry *zend_test_class_with_method_with_parameter_attribute;
66static zend_class_entry *zend_test_child_class_with_method_with_parameter_attribute;
80static int le_throwing_resource;
88 zend_string_release(
EX(
func)->common.function_name);
386#if defined(HAVE_LIBXML) && !defined(PHP_WIN32)
392 xmlLoadExtDtdDefaultValue = 1;
393 xmlDoValidityCheckingDefaultValue = 1;
394 (
void) xmlPedanticParserDefault(1);
395 (
void) xmlSubstituteEntitiesDefault(1);
396 (
void) xmlLineNumbersDefault(1);
397 (
void) xmlKeepBlanksDefault(0);
433 ZEND_FE(zend_iterable_legacy, arginfo_zend_iterable_legacy)
455 obj =
Z_OBJ_P(class_or_object);
515 zend_string_release(errstr);
532 zend_string_release(errstr);
571static ZEND_FUNCTION(ZendTestNS2_ZendSubNS_namespaced_deprecated_func)
592#ifdef ZEND_CHECK_STACK_LIMIT
595 zend_call_stack stack;
599 if (zend_call_stack_get(&stack)) {
610 str =
strpprintf(0,
"%p", zend_call_stack_position());
622zend_long (*
volatile zend_call_stack_use_all_fun)(
void *limit);
624static zend_long zend_call_stack_use_all(
void *limit)
626 if (zend_call_stack_overflowed(limit)) {
630 return 1 + zend_call_stack_use_all_fun(limit);
635 zend_call_stack stack;
639 if (!zend_call_stack_get(&stack)) {
643 zend_call_stack_use_all_fun = zend_call_stack_use_all;
645 void *limit = zend_call_stack_limit(stack.base, stack.max_size, 4096);
670 char *invalid = (
char *) 1;
685 if (has_opline(
EG(current_execute_data))) {
686 assert(
EG(current_execute_data)->opline->lineno != (uint32_t)-1);
693 if (has_opline(
EG(current_execute_data))) {
694 assert(
EG(current_execute_data)->opline->lineno != (uint32_t)-1);
701 if (has_opline(
EG(current_execute_data))) {
702 assert(
EG(current_execute_data)->opline->lineno != (uint32_t)-1);
707static void zend_test_reset_heap(zend_zend_test_globals *zend_test_globals)
709 if (zend_test_globals->zend_test_heap) {
710 free(zend_test_globals->zend_test_heap);
711 zend_test_globals->zend_test_heap =
NULL;
716static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM)
718 if (new_value ==
NULL) {
724 if (int_value == 1) {
740 return OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage);
758 for (
int i = 0; i < 10; i++) {
769 if (
PG(open_basedir)) {
779#ifdef HAVE_BUNDLED_PCRE
794 _fmode = binary ? _O_BINARY : _O_TEXT;
856 obj->
handlers = &zend_test_class_handlers;
873 fptr->
scope = (*object)->ce;
947 for (i = 0; i < argc; i++) {
989static ZEND_METHOD(ZendTestNS_UnlikelyCompileError, method)
996static ZEND_METHOD(ZendTestNS_NotUnlikelyCompileError, method)
1008static ZEND_METHOD(ZendTestNS2_ZendSubNS_Foo, method)
1045 zend_string_release(property_name);
1085 zend_forbid_dynamic_call();
1092 zend_forbid_dynamic_call();
1108 zend_string_addref(
name);
1137#ifdef HAVE_COPY_FILE_RANGE
1164 bool type_matches = (
1169 if (!type_matches) {
1172 zend_string_release(ty);
1182static zend_type create_test_dnf_type(
void) {
1212 {(
const char*)(uintptr_t)(1), {0},
NULL},
1223 bool type_matches = (
1230 if (!type_matches) {
1233 zend_string_release(ty);
1242 .fname =
"zend_test_internal_dnf_arguments",
1243 .handler = zend_test_internal_dnf_arguments,
1244 .arg_info = arginfo_zend_test_internal_dnf_arguments,
1251static void register_dynamic_function_entries(
int module_type) {
1253 arginfo_zend_test_internal_dnf_arguments[0].type = create_test_dnf_type();
1254 arginfo_zend_test_internal_dnf_arguments[1].type = create_test_dnf_type();
1261 register_dynamic_function_entries(
type);
1263 zend_test_interface = register_class__ZendTestInterface();
1265 zend_test_class = register_class__ZendTestClass(zend_test_interface);
1266 register_ZendTestClass_dnf_property(zend_test_class);
1267 zend_test_class->create_object = zend_test_class_new;
1268 zend_test_class->get_static_method = zend_test_class_static_method_get;
1270 zend_test_child_class = register_class__ZendTestChildClass(zend_test_class);
1273 zend_test_class_handlers.get_method = zend_test_class_method_get;
1275 zend_test_gen_stub_flag_compatibility_test = register_class_ZendTestGenStubFlagCompatibilityTest();
1277 zend_attribute_test_class = register_class_ZendAttributeTest();
1279 zend_test_trait = register_class__ZendTestTrait();
1281 register_test_symbols(module_number);
1283 zend_test_attribute = register_class_ZendTestAttribute();
1289 zend_test_repeatable_attribute = register_class_ZendTestRepeatableAttribute();
1292 zend_test_parameter_attribute = register_class_ZendTestParameterAttribute();
1295 zend_test_property_attribute = register_class_ZendTestPropertyAttribute();
1298 zend_test_attribute_with_arguments = register_class_ZendTestAttributeWithArguments();
1301 zend_test_class_with_method_with_parameter_attribute = register_class_ZendTestClassWithMethodWithParameterAttribute();
1302 zend_test_child_class_with_method_with_parameter_attribute = register_class_ZendTestChildClassWithMethodWithParameterAttribute(zend_test_class_with_method_with_parameter_attribute);
1304 zend_test_class_with_property_attribute = register_class_ZendTestClassWithPropertyAttribute();
1306 zend_property_info *
prop_info = zend_hash_str_find_ptr(&zend_test_class_with_property_attribute->properties_info,
"attributed",
sizeof(
"attributed") - 1);
1307 zend_add_property_attribute(zend_test_class_with_property_attribute,
prop_info, zend_test_attribute->name, 0);
1310 zend_test_forbid_dynamic_call = register_class_ZendTestForbidDynamicCall();
1312 zend_test_ns_foo_class = register_class_ZendTestNS_Foo();
1313 zend_test_ns_unlikely_compile_error_class = register_class_ZendTestNS_UnlikelyCompileError();
1314 zend_test_ns_not_unlikely_compile_error_class = register_class_ZendTestNS_NotUnlikelyCompileError();
1315 zend_test_ns2_foo_class = register_class_ZendTestNS2_Foo();
1316 zend_test_ns2_ns_foo_class = register_class_ZendTestNS2_ZendSubNS_Foo();
1318 zend_test_unit_enum = register_class_ZendTestUnitEnum();
1319 zend_test_string_enum = register_class_ZendTestStringEnum();
1320 zend_test_int_enum = register_class_ZendTestIntEnum();
1322 zend_test_magic_call = register_class__ZendTestMagicCall();
1324 register_class__ZendTestMagicCallForward();
1365 fprintf(stderr,
"[zend_test] MSHUTDOWN\n");
1399#if defined(COMPILE_DL_ZEND_TEST) && defined(ZTS)
1402 memset(zend_test_globals, 0,
sizeof(*zend_test_globals));
1410 zend_test_reset_heap(zend_test_globals);
1439#ifdef COMPILE_DL_ZEND_TEST
1466 for (
size_t i = 0; i < elems; i++) {
1509 va_start(
args, fmt);
1551 ret.field = 123456789;
1555#ifdef HAVE_COPY_FILE_RANGE
1560typedef off_t off64_t;
1562PHP_ZEND_TEST_API ssize_t copy_file_range(
int fd_in, off64_t *off_in,
int fd_out, off64_t *off_out,
size_t len,
unsigned int flags)
1564 ssize_t (*original_copy_file_range)(int, off64_t *, int, off64_t *, size_t,
unsigned int) = dlsym(RTLD_NEXT,
"copy_file_range");
1568 return original_copy_file_range(fd_in, off_in, fd_out, off_out,
len,
flags);
fprintf($stream, string $format, mixed ... $values)
copy(string $from, string $to, $context=null)
fread($stream, int $length)
assert(mixed $assertion, Throwable|string|null $description=null)
memset(ptr, 0, type->size)
zend_ffi_ctype_name_buf buf
void zend_test_fiber_init(void)
foreach($dp as $el) foreach( $dp as $el) if( $pass2< 2) echo ""
void zend_test_iterators_init(void)
PHPAPI size_t php_printf(const char *format,...)
PHPAPI ZEND_COLD void php_log_err_with_severity(const char *log_message, int syslog_type_int)
void zend_test_object_handlers_init(void)
void zend_test_observer_ginit(zend_zend_test_globals *zend_test_globals)
void zend_test_observer_init(INIT_FUNC_ARGS)
void zend_test_observer_gshutdown(zend_zend_test_globals *zend_test_globals)
void zend_test_observer_shutdown(SHUTDOWN_FUNC_ARGS)
php_info_print_table_start()
php_info_print_table_row(2, "PDO Driver for Firebird", "enabled")
php_info_print_table_end()
#define PHP_MSHUTDOWN_FUNCTION
#define PHP_MINIT_FUNCTION
#define PHP_MINFO_FUNCTION
#define PHP_GINIT_FUNCTION
#define PHP_RINIT_FUNCTION
#define PHP_RSHUTDOWN_FUNCTION
#define PHP_GSHUTDOWN_FUNCTION
#define PHP_MODULE_GLOBALS
#define STD_PHP_INI_ENTRY
#define STD_PHP_INI_BOOLEAN
unsigned char key[REFLECTION_KEY_LEN]
#define php_stream_cast(stream, as, ret, show_err)
struct _php_stream php_stream
#define php_stream_from_zval(xstr, pzval)
#define PHP_STREAM_AS_STDIO
int replace_zend_execute_ex
zend_string * not_empty_str_test
zend_mm_heap * zend_test_heap
int observe_opline_in_zendmm
#define PHP_ZEND_TEST_VERSION
zend_long limit_copy_file_range
#define PHP_ZEND_TEST_API
int observer_nesting_depth
zend_mm_heap * zend_orig_heap
PHP_ZEND_TEST_API struct bug79096 bug79096(void)
bool print_stderr_mshutdown
zend_module_entry zend_test_module_entry
zend_op_array *(* compile_string)(zend_string *source_string, const char *filename, zend_compile_position position)
zend_string * function_name
zend_string * doc_comment
const zend_object_handlers * handlers
PHP_ZEND_TEST_API void(* bug_gh9090_void_char_int_ptr)(char *, int)
PHP_ZEND_TEST_API bug80847_02 ffi_bug80847(bug80847_02 s)
PHP_ZEND_TEST_API void(* bug_gh9090_void_int_char_var_ptr)(int, char *,...)
void * zend_test_custom_malloc(size_t len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
PHP_ZEND_TEST_API struct bug_gh16013_int_struct bug_gh16013_return_struct(void)
PHP_ZEND_TEST_API int bug_gh16013_return_int(void)
void * zend_test_custom_realloc(void *ptr, size_t len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
PHP_ZEND_TEST_API void bug_gh9090_void_none(void)
PHP_ZEND_TEST_API bool bug_gh16013_return_bool(void)
PHP_ZEND_TEST_API void(* bug_gh9090_void_int_char_ptr)(int, char *)
PHP_ZEND_TEST_API void bug_gh9090_void_int_char_var(int i, char *fmt,...)
PHP_ZEND_TEST_API int *(* bug79177_cb)(void)
PHP_ZEND_TEST_API char bug_gh16013_return_char(void)
void zend_test_custom_free(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
PHP_ZEND_TEST_API enum bug_gh16013_enum bug_gh16013_return_enum(void)
void zend_attribute_validate_zendtestattribute(zend_attribute *attr, uint32_t target, zend_class_entry *scope)
void(* old_zend_execute_ex)(zend_execute_data *execute_data)
PHP_ZEND_TEST_API int(* bug_gh9090_int_int_char_ptr)(int, char *)
PHP_ZEND_TEST_API int gh11934b_ffi_var_test_cdata
PHP_ZEND_TEST_API void(* bug_gh9090_void_none_ptr)(void)
PHP_ZEND_TEST_API int ZEND_FASTCALL bug78270(const char *str, size_t str_len)
PHP_ZEND_TEST_API void bug_gh9090_void_int_char(int i, char *s)
PHP_ZEND_TEST_API void bug79532(off_t *array, size_t elems)
PHP_ZEND_TEST_API short bug_gh16013_return_short(void)
zend_test_zend_call_stack_get()
zend_create_unterminated_string(string $str)
zend_string_or_stdclass($param)
zend_test_zend_call_stack_use_all()
zend_test_is_zend_ptr(int $addr)
zend_test_log_err_debug(string $str)
zend_test_crash(?string $message=null)
zend_iterable(iterable $arg1, ?iterable $arg2=null)
zend_test_is_pcre_bundled()
zend_string_or_object(object|string $param)
zend_test_deprecated(mixed $arg=null)
zend_test_parameter_with_attribute(#[ZendTestParameterAttribute("value1")] string $parameter)
zend_string_or_object_or_null(object|string|null $param)
zend_number_or_string(string|int|float $param)
zend_test_nullable_array_return()
zend_weakmap_remove(object $object)
zend_test_zend_ini_parse_uquantity(string $str)
zend_terminate_string(string &$str)
zend_leak_variable(mixed $variable)
zend_test_create_throwing_resource()
zend_test_fill_packed_array(array &$array)
zend_test_zend_ini_parse_quantity(string $str)
zend_get_current_func_name()
zend_test_override_libxml_global_state()
zend_string_or_stdclass_or_null($param)
zend_test_compile_string(string $source_string, string $filename, int $position)
zend_object_init_with_constructor(string $class, mixed ... $args)
zend_test_set_fmode(bool $binary)
zend_weakmap_attach(object $object, mixed $value)
zend_test_cast_fread($stream)
zend_test_attribute_with_named_argument()
zend_number_or_string_or_null(string|int|float|null $param)
zend_test_is_string_marked_as_valid_utf8(string $string)
zend_leak_bytes(int $bytes=3)
zend_test_deprecated_attr()
ZEND_API void zend_alloc_ce_cache(zend_string *type_name)
ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char *format,...)
ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const char *format,...)
ZEND_API zend_class_entry * zend_standard_class_def
ZEND_API ZEND_COLD void zend_error(int type, const char *format,...)
ZEND_API size_t zend_vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap)
#define ZEND_TSRMLS_CACHE_UPDATE()
#define ZEND_TSRMLS_CACHE_DEFINE()
ZEND_API zend_result zend_register_functions(zend_class_entry *scope, const zend_function_entry *functions, HashTable *function_table, int type)
ZEND_API const char * zend_zval_value_name(const zval *arg)
ZEND_API zend_property_info * zend_declare_typed_property(zend_class_entry *ce, zend_string *name, zval *property, int access_type, zend_string *doc_comment, zend_type type)
ZEND_API const char * zend_zval_type_name(const zval *arg)
ZEND_API zend_result object_init_ex(zval *arg, zend_class_entry *class_type)
ZEND_API zend_result object_init_with_constructor(zval *arg, zend_class_entry *class_type, uint32_t param_count, zval *params, HashTable *named_params)
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
ZEND_API void object_properties_init(zend_object *object, zend_class_entry *class_type)
ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, const char *format,...)
ZEND_API ZEND_COLD void zend_argument_type_error(uint32_t arg_num, const char *format,...)
ZEND_API void zend_update_property_ex(zend_class_entry *scope, zend_object *object, zend_string *name, zval *value)
#define Z_PARAM_ARRAY_HT_EX(dest, check_null, separate)
#define Z_PARAM_OBJ_OF_CLASS_OR_STR(destination_object, base_ce, destination_string)
#define Z_PARAM_ITERABLE_OR_NULL(dest)
#define ZEND_PARSE_PARAMETERS_END()
#define Z_PARAM_RESOURCE(dest)
struct _zend_function_entry zend_function_entry
#define Z_PARAM_STR_OR_NULL(dest)
#define ZEND_PARSE_PARAMETERS_NONE()
#define Z_PARAM_OBJ_OR_STR(destination_object, destination_string)
#define ZEND_DECLARE_MODULE_GLOBALS(module_name)
#define RETVAL_STR_COPY(s)
#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null)
#define ZEND_GET_MODULE(name)
#define Z_PARAM_STR(dest)
#define ZEND_PARSE_PARAMETERS_START(min_num_args, max_num_args)
#define Z_PARAM_NUMBER_OR_STR(dest)
#define Z_PARAM_NUMBER_OR_STR_OR_NULL(dest)
#define Z_PARAM_CLASS(dest)
#define Z_PARAM_LONG(dest)
#define Z_PARAM_VARIADIC(spec, dest, dest_num)
#define RETURN_OBJ_COPY(r)
#define Z_PARAM_ITERABLE(dest)
#define ZEND_METHOD(classname, name)
#define Z_PARAM_OBJ_OF_CLASS_OR_STR_OR_NULL(destination_object, base_ce, destination_string)
#define Z_PARAM_OBJ(dest)
#define ZEND_END_ARG_INFO()
#define ZEND_MODULE_GLOBALS_BULK(module_name)
#define ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(pass_by_ref, name, type_hint, allow_null, default_value)
#define ZEND_NAMED_FUNCTION(name)
#define call_user_function(function_table, object, function_name, retval_ptr, param_count, params)
#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null)
#define Z_PARAM_BOOL(dest)
#define Z_PARAM_OBJ_OR_STR_OR_NULL(destination_object, destination_string)
#define RETURN_EMPTY_STRING()
#define Z_PARAM_ARRAY(dest)
#define ZEND_FE(name, arg_info)
#define Z_PARAM_ZVAL(dest)
#define ZEND_FUNCTION(name)
#define RETURN_STR_COPY(s)
#define Z_PARAM_VARIADIC_WITH_NAMED(dest, dest_num, dest_named)
ZEND_API void ZEND_FASTCALL _zend_mm_free(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
ZEND_API char *ZEND_FASTCALL zend_strndup(const char *s, size_t length)
void *ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
ZEND_API void zend_mm_set_custom_handlers(zend_mm_heap *heap, void *(*_malloc)(size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC), void(*_free)(void *ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC), void *(*_realloc)(void *, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC))
ZEND_API zend_mm_heap * zend_mm_set_heap(zend_mm_heap *new_heap)
ZEND_API bool is_zend_ptr(const void *ptr)
ZEND_API zend_mm_heap * zend_mm_get_heap(void)
ZEND_API void *ZEND_FASTCALL _zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
#define efree_size(ptr, size)
ZEND_API zend_internal_attribute * zend_mark_internal_attribute(zend_class_entry *ce)
struct _zend_attribute zend_attribute
struct _zend_internal_attribute zend_internal_attribute
#define ZEND_ATTRIBUTE_TARGET_CLASS
ZEND_API zend_string * zend_type_to_string(zend_type type)
#define ZEND_USER_CODE(type)
#define OBJ_PROP_NUM(obj, num)
ZEND_API void destroy_op_array(zend_op_array *op_array)
#define ZEND_INTERNAL_FUNCTION
#define ZEND_ACC_CALL_VIA_TRAMPOLINE
struct _zend_op_array zend_op_array
struct _zend_property_info zend_property_info
#define ZEND_ACC_CALL_VIA_HANDLER
struct _zend_internal_arg_info zend_internal_arg_info
@ ZEND_COMPILE_POSITION_AT_OPEN_TAG
struct _zend_internal_function zend_internal_function
ZEND_API zend_object * zend_enum_get_case_cstr(zend_class_entry *ce, const char *name)
ZEND_API ZEND_COLD zend_object * zend_throw_exception(zend_class_entry *exception_ce, const char *message, zend_long code)
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
ZEND_API zend_class_entry * zend_get_called_scope(zend_execute_data *ex)
ZEND_API zend_class_entry * zend_lookup_class(zend_string *name)
ZEND_API zend_string * get_function_or_method_name(const zend_function *func)
ZEND_API void(* zend_execute_ex)(zend_execute_data *execute_data)
ZEND_API void zend_execute(zend_op_array *op_array, zval *return_value)
union _zend_function zend_function
ZEND_API void ZEND_FASTCALL zend_hash_destroy(HashTable *ht)
ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, bool packed)
ZEND_API HashTable *ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2)
ZEND_API HashTable *ZEND_FASTCALL zend_array_dup(HashTable *source)
#define ZEND_HASH_FILL_ADD(_val)
#define zend_hash_init(ht, nSize, pHashFunction, pDestructor, persistent)
#define ZEND_HASH_FILL_PACKED(ht)
#define ZEND_HASH_FOREACH_NUM_KEY(ht, _h)
#define ZEND_HASH_FILL_END()
#define ZEND_HASH_FOREACH_END()
ZEND_API zend_ulong zend_ini_parse_uquantity(zend_string *value, zend_string **errstr)
ZEND_API bool zend_ini_parse_bool(zend_string *str)
ZEND_API zend_long zend_ini_parse_quantity(zend_string *value, zend_string **errstr)
#define UNREGISTER_INI_ENTRIES()
#define REGISTER_INI_ENTRIES()
#define DISPLAY_INI_ENTRIES()
ZEND_API zend_class_entry * zend_ce_countable
ZEND_API zend_class_entry * zend_ce_iterator
ZEND_API zend_class_entry * zend_ce_traversable
ZEND_API zval * zend_call_method(zend_object *object, zend_class_entry *obj_ce, zend_function **fn_proxy, const char *function_name, size_t function_name_len, zval *retval_ptr, uint32_t param_count, zval *arg1, zval *arg2)
ZEND_API zend_resource * zend_register_resource(void *rsrc_pointer, int rsrc_type)
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, const char *type_name, int module_number)
struct _zend_string zend_string
void zend_test_mm_custom_handlers_rshutdown(void)
void zend_test_mm_custom_handlers_minit(INIT_FUNC_ARGS)
void zend_test_mm_custom_handlers_rinit(void)
#define STANDARD_MODULE_HEADER
#define SHUTDOWN_FUNC_ARGS_PASSTHRU
#define INIT_FUNC_ARGS_PASSTHRU
struct _zend_module_entry zend_module_entry
#define STANDARD_MODULE_PROPERTIES_EX
ZEND_API zend_function * zend_std_get_method(zend_object **obj_ptr, zend_string *method_name, const zval *key)
ZEND_API const zend_object_handlers std_object_handlers
ZEND_API zend_function * zend_std_get_static_method(zend_class_entry *ce, zend_string *function_name, const zval *key)
#define zend_free_trampoline(func)
ZEND_API zend_object *ZEND_FASTCALL zend_objects_new(zend_class_entry *ce)
ZEND_API int zend_optimizer_register_pass(zend_optimizer_pass_t pass)
struct _zend_script zend_script
#define ZEND_IGNORE_VALUE(x)
#define EXPECTED(condition)
#define ZEND_DIAGNOSTIC_IGNORED_END
#define ZEND_FILE_LINE_DC
#define ZEND_DIAGNOSTIC_IGNORED_START(warning)
#define EMPTY_SWITCH_DEFAULT_CASE()
#define ZEND_FILE_LINE_EMPTY_CC
#define ZEND_FILE_LINE_ORIG_DC
struct _zend_class_entry zend_class_entry
struct _zend_object zend_object
ZEND_API zend_string_init_interned_func_t zend_string_init_interned
#define ZSTR_IS_VALID_UTF8(s)
#define zend_string_equals_literal_ci(str, c)
#define ZEND_TYPE_INIT_UNION(ptr, extra_flags)
#define Z_TRY_ADDREF_P(pz)
#define Z_STRVAL_P(zval_p)
#define Z_REFCOUNTED_P(zval_p)
#define ZVAL_STR_COPY(z, s)
struct _zend_resource zend_resource
struct _zend_array HashTable
#define ZEND_TYPE_LIST_SIZE(num_types)
#define ZVAL_COPY_DEREF(z, v)
#define ZEND_TYPE_INIT_INTERSECTION(ptr, extra_flags)
ZEND_RESULT_CODE zend_result
struct _zend_object_handlers zend_object_handlers
#define ZEND_TYPE_INIT_CLASS(class_name, allow_null, extra_flags)
struct _zend_execute_data zend_execute_data
#define ZVAL_COPY_VALUE(z, v)
ZEND_API void zval_ptr_dtor(zval *zval_ptr)
zend_property_info * prop_info
ZEND_API zend_result zend_weakrefs_hash_del(HashTable *ht, zend_object *key)
ZEND_API zval * zend_weakrefs_hash_add(HashTable *ht, zend_object *key, zval *pData)