1 /* This is a generated file, edit the .stub.php file instead.
2 * Stub hash: 39a14fb061199171b0a0a08b821dabcba516ccf5 */
3
4 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0)
5 ZEND_END_ARG_INFO()
6
7 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_nullable_array_return, 0, 0, IS_ARRAY, 1)
8 ZEND_END_ARG_INFO()
9
10 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_void_return, 0, 0, IS_VOID, 0)
11 ZEND_END_ARG_INFO()
12
13 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_compile_string, 0, 3, IS_VOID, 0)
14 ZEND_ARG_TYPE_INFO(0, source_string, IS_STRING, 0)
15 ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
16 ZEND_ARG_TYPE_INFO(0, position, IS_LONG, 0)
17 ZEND_END_ARG_INFO()
18
19 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_deprecated, 0, 0, IS_VOID, 0)
20 ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, arg, IS_MIXED, 0, "null")
21 ZEND_END_ARG_INFO()
22
23 #define arginfo_zend_test_aliased arginfo_zend_test_void_return
24
25 #define arginfo_zend_test_deprecated_aliased arginfo_zend_test_void_return
26
27 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_create_unterminated_string, 0, 1, IS_STRING, 0)
28 ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
29 ZEND_END_ARG_INFO()
30
31 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_terminate_string, 0, 1, IS_VOID, 0)
32 ZEND_ARG_TYPE_INFO(1, str, IS_STRING, 0)
33 ZEND_END_ARG_INFO()
34
35 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_leak_variable, 0, 1, IS_VOID, 0)
36 ZEND_ARG_TYPE_INFO(0, variable, IS_MIXED, 0)
37 ZEND_END_ARG_INFO()
38
39 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_leak_bytes, 0, 0, IS_VOID, 0)
40 ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, bytes, IS_LONG, 0, "3")
41 ZEND_END_ARG_INFO()
42
43 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_zend_string_or_object, 0, 1, MAY_BE_OBJECT|MAY_BE_STRING)
44 ZEND_ARG_TYPE_MASK(0, param, MAY_BE_OBJECT|MAY_BE_STRING, NULL)
45 ZEND_END_ARG_INFO()
46
47 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_zend_string_or_object_or_null, 0, 1, MAY_BE_OBJECT|MAY_BE_STRING|MAY_BE_NULL)
48 ZEND_ARG_TYPE_MASK(0, param, MAY_BE_OBJECT|MAY_BE_STRING|MAY_BE_NULL, NULL)
49 ZEND_END_ARG_INFO()
50
51 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_zend_string_or_stdclass, 0, 1, stdClass, MAY_BE_STRING)
52 ZEND_ARG_INFO(0, param)
53 ZEND_END_ARG_INFO()
54
55 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_zend_string_or_stdclass_or_null, 0, 1, stdClass, MAY_BE_STRING|MAY_BE_NULL)
56 ZEND_ARG_INFO(0, param)
57 ZEND_END_ARG_INFO()
58
59 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_zend_number_or_string, 0, 1, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE)
60 ZEND_ARG_TYPE_MASK(0, param, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE, NULL)
61 ZEND_END_ARG_INFO()
62
63 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_zend_number_or_string_or_null, 0, 1, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_NULL)
64 ZEND_ARG_TYPE_MASK(0, param, MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_NULL, NULL)
65 ZEND_END_ARG_INFO()
66
67 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_iterable, 0, 1, IS_VOID, 0)
68 ZEND_ARG_OBJ_TYPE_MASK(0, arg1, Traversable, MAY_BE_ARRAY, NULL)
69 ZEND_ARG_OBJ_TYPE_MASK(0, arg2, Traversable, MAY_BE_ARRAY|MAY_BE_NULL, "null")
70 ZEND_END_ARG_INFO()
71
72 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_weakmap_attach, 0, 2, _IS_BOOL, 0)
73 ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
74 ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
75 ZEND_END_ARG_INFO()
76
77 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_weakmap_remove, 0, 1, _IS_BOOL, 0)
78 ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
79 ZEND_END_ARG_INFO()
80
81 #define arginfo_zend_weakmap_dump arginfo_zend_test_array_return
82
83 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_zend_get_unit_enum, 0, 0, ZendTestUnitEnum, 0)
84 ZEND_END_ARG_INFO()
85
86 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_parameter_with_attribute, 0, 1, IS_LONG, 0)
87 ZEND_ARG_TYPE_INFO(0, parameter, IS_STRING, 0)
88 ZEND_END_ARG_INFO()
89
90 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_get_current_func_name, 0, 0, IS_STRING, 0)
91 ZEND_END_ARG_INFO()
92
93 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_call_method, 0, 2, IS_MIXED, 0)
94 ZEND_ARG_TYPE_MASK(0, obj_or_class, MAY_BE_OBJECT|MAY_BE_STRING, NULL)
95 ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 0)
96 ZEND_ARG_TYPE_INFO(0, arg1, IS_MIXED, 0)
97 ZEND_ARG_TYPE_INFO(0, arg2, IS_MIXED, 0)
98 ZEND_END_ARG_INFO()
99
100 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_zend_ini_parse_quantity, 0, 1, IS_LONG, 0)
101 ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
102 ZEND_END_ARG_INFO()
103
104 #define arginfo_zend_test_zend_ini_parse_uquantity arginfo_zend_test_zend_ini_parse_quantity
105
106 #define arginfo_zend_test_zend_ini_str arginfo_zend_get_current_func_name
107
108 #if defined(ZEND_CHECK_STACK_LIMIT)
109 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_zend_call_stack_get, 0, 0, IS_ARRAY, 1)
110 ZEND_END_ARG_INFO()
111 #endif
112
113 #if defined(ZEND_CHECK_STACK_LIMIT)
114 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_zend_call_stack_use_all, 0, 0, IS_LONG, 0)
115 ZEND_END_ARG_INFO()
116 #endif
117
118 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_is_string_marked_as_valid_utf8, 0, 1, _IS_BOOL, 0)
119 ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
120 ZEND_END_ARG_INFO()
121
122 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_get_map_ptr_last, 0, 0, IS_LONG, 0)
123 ZEND_END_ARG_INFO()
124
125 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_crash, 0, 0, IS_VOID, 0)
126 ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, message, IS_STRING, 1, "null")
127 ZEND_END_ARG_INFO()
128
129 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_fill_packed_array, 0, 1, IS_VOID, 0)
130 ZEND_ARG_TYPE_INFO(1, array, IS_ARRAY, 0)
131 ZEND_END_ARG_INFO()
132
133 ZEND_BEGIN_ARG_INFO_EX(arginfo_zend_test_create_throwing_resource, 0, 0, 0)
134 ZEND_END_ARG_INFO()
135
136 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_get_open_basedir, 0, 0, IS_STRING, 1)
137 ZEND_END_ARG_INFO()
138
139 #if defined(HAVE_LIBXML) && !defined(PHP_WIN32)
140 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_override_libxml_global_state, 0, 0, IS_VOID, 0)
141 ZEND_END_ARG_INFO()
142 #endif
143
144 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_is_pcre_bundled, 0, 0, _IS_BOOL, 0)
145 ZEND_END_ARG_INFO()
146
147 #define arginfo_ZendTestNS2_namespaced_func arginfo_zend_test_is_pcre_bundled
148
149 #define arginfo_ZendTestNS2_namespaced_deprecated_func arginfo_zend_test_void_return
150
151 #define arginfo_ZendTestNS2_namespaced_aliased_func arginfo_zend_test_void_return
152
153 #define arginfo_ZendTestNS2_namespaced_deprecated_aliased_func arginfo_zend_test_void_return
154
155 #define arginfo_ZendTestNS2_ZendSubNS_namespaced_func arginfo_zend_test_is_pcre_bundled
156
157 #define arginfo_ZendTestNS2_ZendSubNS_namespaced_deprecated_func arginfo_zend_test_void_return
158
159 #define arginfo_ZendTestNS2_ZendSubNS_namespaced_aliased_func arginfo_zend_test_void_return
160
161 #define arginfo_ZendTestNS2_ZendSubNS_namespaced_deprecated_aliased_func arginfo_zend_test_void_return
162
163 #define arginfo_class__ZendTestClass_is_object arginfo_zend_get_map_ptr_last
164
165 #define arginfo_class__ZendTestClass___toString arginfo_zend_get_current_func_name
166
167 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class__ZendTestClass_returnsStatic, 0, 0, IS_STATIC, 0)
168 ZEND_END_ARG_INFO()
169
170 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class__ZendTestClass_returnsThrowable, 0, 0, Throwable, 0)
171 ZEND_END_ARG_INFO()
172
173 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class__ZendTestClass_variadicTest, 0, 0, IS_STATIC, 0)
174 ZEND_ARG_VARIADIC_OBJ_TYPE_MASK(0, elements, Iterator, MAY_BE_STRING)
175 ZEND_END_ARG_INFO()
176
177 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class__ZendTestClass_takesUnionType, 0, 1, IS_VOID, 0)
178 ZEND_ARG_OBJ_TYPE_MASK(0, arg, stdclass|Iterator, 0, NULL)
179 ZEND_END_ARG_INFO()
180
181 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class__ZendTestMagicCall___call, 0, 2, IS_MIXED, 0)
182 ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
183 ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
184 ZEND_END_ARG_INFO()
185
186 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class__ZendTestChildClass_returnsThrowable, 0, 0, Exception, 0)
187 ZEND_END_ARG_INFO()
188
189 #define arginfo_class_ZendAttributeTest_testMethod arginfo_zend_test_is_pcre_bundled
190
191 #define arginfo_class__ZendTestTrait_testMethod arginfo_zend_test_is_pcre_bundled
192
193 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ZendTestParameterAttribute___construct, 0, 0, 1)
194 ZEND_ARG_TYPE_INFO(0, parameter, IS_STRING, 0)
195 ZEND_END_ARG_INFO()
196
197 #define arginfo_class_ZendTestPropertyAttribute___construct arginfo_class_ZendTestParameterAttribute___construct
198
199 #define arginfo_class_ZendTestClassWithMethodWithParameterAttribute_no_override arginfo_zend_test_parameter_with_attribute
200
201 #define arginfo_class_ZendTestClassWithMethodWithParameterAttribute_override arginfo_zend_test_parameter_with_attribute
202
203 #define arginfo_class_ZendTestChildClassWithMethodWithParameterAttribute_override arginfo_zend_test_parameter_with_attribute
204
205 #define arginfo_class_ZendTestForbidDynamicCall_call arginfo_zend_test_void_return
206
207 #define arginfo_class_ZendTestForbidDynamicCall_callStatic arginfo_zend_test_void_return
208
209 #if (PHP_VERSION_ID >= 80100)
210 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_ZendTestNS_Foo_method, 0, 0, IS_LONG, 0)
211 #else
212 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ZendTestNS_Foo_method, 0, 0, 0)
213 #endif
214 ZEND_END_ARG_INFO()
215
216 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_ZendTestNS_UnlikelyCompileError_method, 0, 0, ZendTestNS\\\125nlikelyCompileError, 1)
217 ZEND_END_ARG_INFO()
218
219 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_ZendTestNS_NotUnlikelyCompileError_method, 0, 0, ZendTestNS\\\116otUnlikelyCompileError, 1)
220 ZEND_END_ARG_INFO()
221
222 #define arginfo_class_ZendTestNS2_Foo_method arginfo_zend_test_void_return
223
224 #define arginfo_class_ZendTestNS2_ZendSubNS_Foo_method arginfo_zend_test_void_return
225
226
227 static ZEND_FUNCTION(zend_test_array_return);
228 static ZEND_FUNCTION(zend_test_nullable_array_return);
229 static ZEND_FUNCTION(zend_test_void_return);
230 static ZEND_FUNCTION(zend_test_compile_string);
231 static ZEND_FUNCTION(zend_test_deprecated);
232 static ZEND_FUNCTION(zend_create_unterminated_string);
233 static ZEND_FUNCTION(zend_terminate_string);
234 static ZEND_FUNCTION(zend_leak_variable);
235 static ZEND_FUNCTION(zend_leak_bytes);
236 static ZEND_FUNCTION(zend_string_or_object);
237 static ZEND_FUNCTION(zend_string_or_object_or_null);
238 static ZEND_FUNCTION(zend_string_or_stdclass);
239 static ZEND_FUNCTION(zend_string_or_stdclass_or_null);
240 static ZEND_FUNCTION(zend_number_or_string);
241 static ZEND_FUNCTION(zend_number_or_string_or_null);
242 static ZEND_FUNCTION(zend_iterable);
243 static ZEND_FUNCTION(zend_weakmap_attach);
244 static ZEND_FUNCTION(zend_weakmap_remove);
245 static ZEND_FUNCTION(zend_weakmap_dump);
246 static ZEND_FUNCTION(zend_get_unit_enum);
247 static ZEND_FUNCTION(zend_test_parameter_with_attribute);
248 static ZEND_FUNCTION(zend_get_current_func_name);
249 static ZEND_FUNCTION(zend_call_method);
250 static ZEND_FUNCTION(zend_test_zend_ini_parse_quantity);
251 static ZEND_FUNCTION(zend_test_zend_ini_parse_uquantity);
252 static ZEND_FUNCTION(zend_test_zend_ini_str);
253 #if defined(ZEND_CHECK_STACK_LIMIT)
254 static ZEND_FUNCTION(zend_test_zend_call_stack_get);
255 #endif
256 #if defined(ZEND_CHECK_STACK_LIMIT)
257 static ZEND_FUNCTION(zend_test_zend_call_stack_use_all);
258 #endif
259 static ZEND_FUNCTION(zend_test_is_string_marked_as_valid_utf8);
260 static ZEND_FUNCTION(zend_get_map_ptr_last);
261 static ZEND_FUNCTION(zend_test_crash);
262 static ZEND_FUNCTION(zend_test_fill_packed_array);
263 static ZEND_FUNCTION(zend_test_create_throwing_resource);
264 static ZEND_FUNCTION(get_open_basedir);
265 #if defined(HAVE_LIBXML) && !defined(PHP_WIN32)
266 static ZEND_FUNCTION(zend_test_override_libxml_global_state);
267 #endif
268 static ZEND_FUNCTION(zend_test_is_pcre_bundled);
269 static ZEND_FUNCTION(ZendTestNS2_namespaced_func);
270 static ZEND_FUNCTION(ZendTestNS2_namespaced_deprecated_func);
271 static ZEND_FUNCTION(ZendTestNS2_ZendSubNS_namespaced_func);
272 static ZEND_FUNCTION(ZendTestNS2_ZendSubNS_namespaced_deprecated_func);
273 static ZEND_METHOD(_ZendTestClass, is_object);
274 static ZEND_METHOD(_ZendTestClass, __toString);
275 static ZEND_METHOD(_ZendTestClass, returnsStatic);
276 static ZEND_METHOD(_ZendTestClass, returnsThrowable);
277 static ZEND_METHOD(_ZendTestClass, variadicTest);
278 static ZEND_METHOD(_ZendTestClass, takesUnionType);
279 static ZEND_METHOD(_ZendTestMagicCall, __call);
280 static ZEND_METHOD(_ZendTestChildClass, returnsThrowable);
281 static ZEND_METHOD(ZendAttributeTest, testMethod);
282 static ZEND_METHOD(_ZendTestTrait, testMethod);
283 static ZEND_METHOD(ZendTestParameterAttribute, __construct);
284 static ZEND_METHOD(ZendTestPropertyAttribute, __construct);
285 static ZEND_METHOD(ZendTestClassWithMethodWithParameterAttribute, no_override);
286 static ZEND_METHOD(ZendTestClassWithMethodWithParameterAttribute, override);
287 static ZEND_METHOD(ZendTestChildClassWithMethodWithParameterAttribute, override);
288 static ZEND_METHOD(ZendTestForbidDynamicCall, call);
289 static ZEND_METHOD(ZendTestForbidDynamicCall, callStatic);
290 static ZEND_METHOD(ZendTestNS_Foo, method);
291 static ZEND_METHOD(ZendTestNS_UnlikelyCompileError, method);
292 static ZEND_METHOD(ZendTestNS_NotUnlikelyCompileError, method);
293 static ZEND_METHOD(ZendTestNS2_Foo, method);
294 static ZEND_METHOD(ZendTestNS2_ZendSubNS_Foo, method);
295
296
297 static const zend_function_entry ext_functions[] = {
298 ZEND_FE(zend_test_array_return, arginfo_zend_test_array_return)
299 ZEND_FE(zend_test_nullable_array_return, arginfo_zend_test_nullable_array_return)
300 ZEND_FE(zend_test_void_return, arginfo_zend_test_void_return)
301 ZEND_FE(zend_test_compile_string, arginfo_zend_test_compile_string)
302 ZEND_DEP_FE(zend_test_deprecated, arginfo_zend_test_deprecated)
303 ZEND_FALIAS(zend_test_aliased, zend_test_void_return, arginfo_zend_test_aliased)
304 ZEND_DEP_FALIAS(zend_test_deprecated_aliased, zend_test_void_return, arginfo_zend_test_deprecated_aliased)
305 ZEND_FE(zend_create_unterminated_string, arginfo_zend_create_unterminated_string)
306 ZEND_FE(zend_terminate_string, arginfo_zend_terminate_string)
307 ZEND_FE(zend_leak_variable, arginfo_zend_leak_variable)
308 ZEND_FE(zend_leak_bytes, arginfo_zend_leak_bytes)
309 ZEND_FE(zend_string_or_object, arginfo_zend_string_or_object)
310 ZEND_FE(zend_string_or_object_or_null, arginfo_zend_string_or_object_or_null)
311 ZEND_FE(zend_string_or_stdclass, arginfo_zend_string_or_stdclass)
312 ZEND_FE(zend_string_or_stdclass_or_null, arginfo_zend_string_or_stdclass_or_null)
313 ZEND_FE(zend_number_or_string, arginfo_zend_number_or_string)
314 ZEND_FE(zend_number_or_string_or_null, arginfo_zend_number_or_string_or_null)
315 ZEND_FE(zend_iterable, arginfo_zend_iterable)
316 ZEND_FE(zend_weakmap_attach, arginfo_zend_weakmap_attach)
317 ZEND_FE(zend_weakmap_remove, arginfo_zend_weakmap_remove)
318 ZEND_FE(zend_weakmap_dump, arginfo_zend_weakmap_dump)
319 ZEND_FE(zend_get_unit_enum, arginfo_zend_get_unit_enum)
320 ZEND_FE(zend_test_parameter_with_attribute, arginfo_zend_test_parameter_with_attribute)
321 ZEND_FE(zend_get_current_func_name, arginfo_zend_get_current_func_name)
322 ZEND_FE(zend_call_method, arginfo_zend_call_method)
323 ZEND_FE(zend_test_zend_ini_parse_quantity, arginfo_zend_test_zend_ini_parse_quantity)
324 ZEND_FE(zend_test_zend_ini_parse_uquantity, arginfo_zend_test_zend_ini_parse_uquantity)
325 ZEND_FE(zend_test_zend_ini_str, arginfo_zend_test_zend_ini_str)
326 #if defined(ZEND_CHECK_STACK_LIMIT)
327 ZEND_FE(zend_test_zend_call_stack_get, arginfo_zend_test_zend_call_stack_get)
328 #endif
329 #if defined(ZEND_CHECK_STACK_LIMIT)
330 ZEND_FE(zend_test_zend_call_stack_use_all, arginfo_zend_test_zend_call_stack_use_all)
331 #endif
332 ZEND_FE(zend_test_is_string_marked_as_valid_utf8, arginfo_zend_test_is_string_marked_as_valid_utf8)
333 ZEND_FE(zend_get_map_ptr_last, arginfo_zend_get_map_ptr_last)
334 ZEND_FE(zend_test_crash, arginfo_zend_test_crash)
335 ZEND_FE(zend_test_fill_packed_array, arginfo_zend_test_fill_packed_array)
336 ZEND_FE(zend_test_create_throwing_resource, arginfo_zend_test_create_throwing_resource)
337 ZEND_FE(get_open_basedir, arginfo_get_open_basedir)
338 #if defined(HAVE_LIBXML) && !defined(PHP_WIN32)
339 ZEND_FE(zend_test_override_libxml_global_state, arginfo_zend_test_override_libxml_global_state)
340 #endif
341 ZEND_FE(zend_test_is_pcre_bundled, arginfo_zend_test_is_pcre_bundled)
342 ZEND_NS_FALIAS("ZendTestNS2", namespaced_func, ZendTestNS2_namespaced_func, arginfo_ZendTestNS2_namespaced_func)
343 ZEND_NS_DEP_FALIAS("ZendTestNS2", namespaced_deprecated_func, ZendTestNS2_namespaced_deprecated_func, arginfo_ZendTestNS2_namespaced_deprecated_func)
344 ZEND_NS_FALIAS("ZendTestNS2", namespaced_aliased_func, zend_test_void_return, arginfo_ZendTestNS2_namespaced_aliased_func)
345 ZEND_NS_DEP_FALIAS("ZendTestNS2", namespaced_deprecated_aliased_func, zend_test_void_return, arginfo_ZendTestNS2_namespaced_deprecated_aliased_func)
346 ZEND_NS_FALIAS("ZendTestNS2\\ZendSubNS", namespaced_func, ZendTestNS2_ZendSubNS_namespaced_func, arginfo_ZendTestNS2_ZendSubNS_namespaced_func)
347 ZEND_NS_DEP_FALIAS("ZendTestNS2\\ZendSubNS", namespaced_deprecated_func, ZendTestNS2_ZendSubNS_namespaced_deprecated_func, arginfo_ZendTestNS2_ZendSubNS_namespaced_deprecated_func)
348 ZEND_NS_FALIAS("ZendTestNS2\\ZendSubNS", namespaced_aliased_func, zend_test_void_return, arginfo_ZendTestNS2_ZendSubNS_namespaced_aliased_func)
349 ZEND_NS_DEP_FALIAS("ZendTestNS2\\ZendSubNS", namespaced_deprecated_aliased_func, zend_test_void_return, arginfo_ZendTestNS2_ZendSubNS_namespaced_deprecated_aliased_func)
350 ZEND_FE_END
351 };
352
353
354 static const zend_function_entry class__ZendTestInterface_methods[] = {
355 ZEND_FE_END
356 };
357
358
359 static const zend_function_entry class__ZendTestClass_methods[] = {
360 ZEND_ME(_ZendTestClass, is_object, arginfo_class__ZendTestClass_is_object, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
361 ZEND_ME(_ZendTestClass, __toString, arginfo_class__ZendTestClass___toString, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
362 ZEND_ME(_ZendTestClass, returnsStatic, arginfo_class__ZendTestClass_returnsStatic, ZEND_ACC_PUBLIC)
363 ZEND_ME(_ZendTestClass, returnsThrowable, arginfo_class__ZendTestClass_returnsThrowable, ZEND_ACC_PUBLIC)
364 ZEND_ME(_ZendTestClass, variadicTest, arginfo_class__ZendTestClass_variadicTest, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
365 ZEND_ME(_ZendTestClass, takesUnionType, arginfo_class__ZendTestClass_takesUnionType, ZEND_ACC_PUBLIC)
366 ZEND_FE_END
367 };
368
369
370 static const zend_function_entry class__ZendTestMagicCall_methods[] = {
371 ZEND_ME(_ZendTestMagicCall, __call, arginfo_class__ZendTestMagicCall___call, ZEND_ACC_PUBLIC)
372 ZEND_FE_END
373 };
374
375
376 static const zend_function_entry class__ZendTestChildClass_methods[] = {
377 ZEND_ME(_ZendTestChildClass, returnsThrowable, arginfo_class__ZendTestChildClass_returnsThrowable, ZEND_ACC_PUBLIC)
378 ZEND_FE_END
379 };
380
381
382 static const zend_function_entry class_ZendAttributeTest_methods[] = {
383 ZEND_ME(ZendAttributeTest, testMethod, arginfo_class_ZendAttributeTest_testMethod, ZEND_ACC_PUBLIC)
384 ZEND_FE_END
385 };
386
387
388 static const zend_function_entry class__ZendTestTrait_methods[] = {
389 ZEND_ME(_ZendTestTrait, testMethod, arginfo_class__ZendTestTrait_testMethod, ZEND_ACC_PUBLIC)
390 ZEND_FE_END
391 };
392
393
394 static const zend_function_entry class_ZendTestAttribute_methods[] = {
395 ZEND_FE_END
396 };
397
398
399 static const zend_function_entry class_ZendTestRepeatableAttribute_methods[] = {
400 ZEND_FE_END
401 };
402
403
404 static const zend_function_entry class_ZendTestParameterAttribute_methods[] = {
405 ZEND_ME(ZendTestParameterAttribute, __construct, arginfo_class_ZendTestParameterAttribute___construct, ZEND_ACC_PUBLIC)
406 ZEND_FE_END
407 };
408
409
410 static const zend_function_entry class_ZendTestPropertyAttribute_methods[] = {
411 ZEND_ME(ZendTestPropertyAttribute, __construct, arginfo_class_ZendTestPropertyAttribute___construct, ZEND_ACC_PUBLIC)
412 ZEND_FE_END
413 };
414
415
416 static const zend_function_entry class_ZendTestClassWithMethodWithParameterAttribute_methods[] = {
417 ZEND_ME(ZendTestClassWithMethodWithParameterAttribute, no_override, arginfo_class_ZendTestClassWithMethodWithParameterAttribute_no_override, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
418 ZEND_ME(ZendTestClassWithMethodWithParameterAttribute, override, arginfo_class_ZendTestClassWithMethodWithParameterAttribute_override, ZEND_ACC_PUBLIC)
419 ZEND_FE_END
420 };
421
422
423 static const zend_function_entry class_ZendTestChildClassWithMethodWithParameterAttribute_methods[] = {
424 ZEND_ME(ZendTestChildClassWithMethodWithParameterAttribute, override, arginfo_class_ZendTestChildClassWithMethodWithParameterAttribute_override, ZEND_ACC_PUBLIC)
425 ZEND_FE_END
426 };
427
428
429 static const zend_function_entry class_ZendTestClassWithPropertyAttribute_methods[] = {
430 ZEND_FE_END
431 };
432
433
434 static const zend_function_entry class_ZendTestForbidDynamicCall_methods[] = {
435 ZEND_ME(ZendTestForbidDynamicCall, call, arginfo_class_ZendTestForbidDynamicCall_call, ZEND_ACC_PUBLIC)
436 ZEND_ME(ZendTestForbidDynamicCall, callStatic, arginfo_class_ZendTestForbidDynamicCall_callStatic, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
437 ZEND_FE_END
438 };
439
440
441 static const zend_function_entry class_ZendTestUnitEnum_methods[] = {
442 ZEND_FE_END
443 };
444
445
446 static const zend_function_entry class_ZendTestStringEnum_methods[] = {
447 ZEND_FE_END
448 };
449
450
451 static const zend_function_entry class_ZendTestIntEnum_methods[] = {
452 ZEND_FE_END
453 };
454
455
456 static const zend_function_entry class_ZendTestNS_Foo_methods[] = {
457 ZEND_ME(ZendTestNS_Foo, method, arginfo_class_ZendTestNS_Foo_method, ZEND_ACC_PUBLIC)
458 ZEND_FE_END
459 };
460
461
462 static const zend_function_entry class_ZendTestNS_UnlikelyCompileError_methods[] = {
463 ZEND_ME(ZendTestNS_UnlikelyCompileError, method, arginfo_class_ZendTestNS_UnlikelyCompileError_method, ZEND_ACC_PUBLIC)
464 ZEND_FE_END
465 };
466
467
468 static const zend_function_entry class_ZendTestNS_NotUnlikelyCompileError_methods[] = {
469 ZEND_ME(ZendTestNS_NotUnlikelyCompileError, method, arginfo_class_ZendTestNS_NotUnlikelyCompileError_method, ZEND_ACC_PUBLIC)
470 ZEND_FE_END
471 };
472
473
474 static const zend_function_entry class_ZendTestNS2_Foo_methods[] = {
475 ZEND_ME(ZendTestNS2_Foo, method, arginfo_class_ZendTestNS2_Foo_method, ZEND_ACC_PUBLIC)
476 ZEND_FE_END
477 };
478
479
480 static const zend_function_entry class_ZendTestNS2_ZendSubNS_Foo_methods[] = {
481 ZEND_ME(ZendTestNS2_ZendSubNS_Foo, method, arginfo_class_ZendTestNS2_ZendSubNS_Foo_method, ZEND_ACC_PUBLIC)
482 ZEND_FE_END
483 };
484
register_test_symbols(int module_number)485 static void register_test_symbols(int module_number)
486 {
487 REGISTER_LONG_CONSTANT("ZEND_TEST_DEPRECATED", 42, CONST_PERSISTENT | CONST_DEPRECATED);
488 REGISTER_STRING_CONSTANT("ZEND_CONSTANT_A", "global", CONST_PERSISTENT);
489 REGISTER_STRING_CONSTANT("ZendTestNS2\\ZEND_CONSTANT_A", "namespaced", CONST_PERSISTENT);
490 REGISTER_STRING_CONSTANT("ZendTestNS2\\ZendSubNS\\ZEND_CONSTANT_A", "namespaced", CONST_PERSISTENT);
491
492
493 zend_string *attribute_name_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
494 zend_attribute *attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(CG(function_table), "zend_test_parameter_with_attribute", sizeof("zend_test_parameter_with_attribute") - 1), 0, attribute_name_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0, 1);
495 zend_string_release(attribute_name_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0);
496 zval attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0_arg0;
497 zend_string *attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0_arg0_str = zend_string_init("value1", strlen("value1"), 1);
498 ZVAL_STR(&attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0_arg0, attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0_arg0_str);
499 ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0->args[0].value, &attribute_ZendTestParameterAttribute_func_zend_test_parameter_with_attribute_arg0_0_arg0);
500 }
501
register_class__ZendTestInterface(void)502 static zend_class_entry *register_class__ZendTestInterface(void)
503 {
504 zend_class_entry ce, *class_entry;
505
506 INIT_CLASS_ENTRY(ce, "_ZendTestInterface", class__ZendTestInterface_methods);
507 class_entry = zend_register_internal_interface(&ce);
508
509 zval const_DUMMY_value;
510 ZVAL_LONG(&const_DUMMY_value, 0);
511 zend_string *const_DUMMY_name = zend_string_init_interned("DUMMY", sizeof("DUMMY") - 1, 1);
512 zend_declare_class_constant_ex(class_entry, const_DUMMY_name, &const_DUMMY_value, ZEND_ACC_PUBLIC, NULL);
513 zend_string_release(const_DUMMY_name);
514
515 return class_entry;
516 }
517
register_class__ZendTestClass(zend_class_entry * class_entry__ZendTestInterface)518 static zend_class_entry *register_class__ZendTestClass(zend_class_entry *class_entry__ZendTestInterface)
519 {
520 zend_class_entry ce, *class_entry;
521
522 INIT_CLASS_ENTRY(ce, "_ZendTestClass", class__ZendTestClass_methods);
523 class_entry = zend_register_internal_class_ex(&ce, NULL);
524 zend_class_implements(class_entry, 1, class_entry__ZendTestInterface);
525 zend_register_class_alias("_ZendTestClassAlias", class_entry);
526
527 zval const_TYPED_CLASS_CONST1_value;
528 ZVAL_EMPTY_ARRAY(&const_TYPED_CLASS_CONST1_value);
529 zend_string *const_TYPED_CLASS_CONST1_name = zend_string_init_interned("TYPED_CLASS_CONST1", sizeof("TYPED_CLASS_CONST1") - 1, 1);
530 #if (PHP_VERSION_ID >= 80300)
531 zend_declare_typed_class_constant(class_entry, const_TYPED_CLASS_CONST1_name, &const_TYPED_CLASS_CONST1_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ANY));
532 #else
533 zend_declare_class_constant_ex(class_entry, const_TYPED_CLASS_CONST1_name, &const_TYPED_CLASS_CONST1_value, ZEND_ACC_PUBLIC, NULL);
534 #endif
535 zend_string_release(const_TYPED_CLASS_CONST1_name);
536
537 zval const_TYPED_CLASS_CONST2_value;
538 ZVAL_LONG(&const_TYPED_CLASS_CONST2_value, 42);
539 zend_string *const_TYPED_CLASS_CONST2_name = zend_string_init_interned("TYPED_CLASS_CONST2", sizeof("TYPED_CLASS_CONST2") - 1, 1);
540 #if (PHP_VERSION_ID >= 80300)
541 zend_declare_typed_class_constant(class_entry, const_TYPED_CLASS_CONST2_name, &const_TYPED_CLASS_CONST2_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG|MAY_BE_ARRAY));
542 #else
543 zend_declare_class_constant_ex(class_entry, const_TYPED_CLASS_CONST2_name, &const_TYPED_CLASS_CONST2_value, ZEND_ACC_PUBLIC, NULL);
544 #endif
545 zend_string_release(const_TYPED_CLASS_CONST2_name);
546
547 zval const_TYPED_CLASS_CONST3_value;
548 ZVAL_LONG(&const_TYPED_CLASS_CONST3_value, 1);
549 zend_string *const_TYPED_CLASS_CONST3_name = zend_string_init_interned("TYPED_CLASS_CONST3", sizeof("TYPED_CLASS_CONST3") - 1, 1);
550 #if (PHP_VERSION_ID >= 80300)
551 zend_declare_typed_class_constant(class_entry, const_TYPED_CLASS_CONST3_name, &const_TYPED_CLASS_CONST3_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG|MAY_BE_STRING));
552 #else
553 zend_declare_class_constant_ex(class_entry, const_TYPED_CLASS_CONST3_name, &const_TYPED_CLASS_CONST3_value, ZEND_ACC_PUBLIC, NULL);
554 #endif
555 zend_string_release(const_TYPED_CLASS_CONST3_name);
556
557 zval property__StaticProp_default_value;
558 ZVAL_NULL(&property__StaticProp_default_value);
559 zend_string *property__StaticProp_name = zend_string_init("_StaticProp", sizeof("_StaticProp") - 1, 1);
560 zend_declare_typed_property(class_entry, property__StaticProp_name, &property__StaticProp_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC, NULL, (zend_type) ZEND_TYPE_INIT_NONE(0));
561 zend_string_release(property__StaticProp_name);
562
563 zval property_staticIntProp_default_value;
564 ZVAL_LONG(&property_staticIntProp_default_value, 123);
565 zend_string *property_staticIntProp_name = zend_string_init("staticIntProp", sizeof("staticIntProp") - 1, 1);
566 zend_declare_typed_property(class_entry, property_staticIntProp_name, &property_staticIntProp_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
567 zend_string_release(property_staticIntProp_name);
568
569 zval property_intProp_default_value;
570 ZVAL_LONG(&property_intProp_default_value, 123);
571 zend_string *property_intProp_name = zend_string_init("intProp", sizeof("intProp") - 1, 1);
572 zend_declare_typed_property(class_entry, property_intProp_name, &property_intProp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
573 zend_string_release(property_intProp_name);
574
575 zval property_classProp_default_value;
576 ZVAL_NULL(&property_classProp_default_value);
577 zend_string *property_classProp_name = zend_string_init("classProp", sizeof("classProp") - 1, 1);
578 zend_string *property_classProp_class_stdClass = zend_string_init("stdClass", sizeof("stdClass")-1, 1);
579 zend_declare_typed_property(class_entry, property_classProp_name, &property_classProp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_CLASS(property_classProp_class_stdClass, 0, MAY_BE_NULL));
580 zend_string_release(property_classProp_name);
581
582 zval property_classUnionProp_default_value;
583 ZVAL_NULL(&property_classUnionProp_default_value);
584 zend_string *property_classUnionProp_name = zend_string_init("classUnionProp", sizeof("classUnionProp") - 1, 1);
585 zend_string *property_classUnionProp_class_stdClass = zend_string_init("stdClass", sizeof("stdClass") - 1, 1);
586 zend_string *property_classUnionProp_class_Iterator = zend_string_init("Iterator", sizeof("Iterator") - 1, 1);
587 zend_type_list *property_classUnionProp_type_list = malloc(ZEND_TYPE_LIST_SIZE(2));
588 property_classUnionProp_type_list->num_types = 2;
589 property_classUnionProp_type_list->types[0] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_stdClass, 0, 0);
590 property_classUnionProp_type_list->types[1] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_Iterator, 0, 0);
591 zend_type property_classUnionProp_type = ZEND_TYPE_INIT_UNION(property_classUnionProp_type_list, MAY_BE_NULL);
592 zend_declare_typed_property(class_entry, property_classUnionProp_name, &property_classUnionProp_default_value, ZEND_ACC_PUBLIC, NULL, property_classUnionProp_type);
593 zend_string_release(property_classUnionProp_name);
594
595 zval property_classIntersectionProp_default_value;
596 ZVAL_UNDEF(&property_classIntersectionProp_default_value);
597 zend_string *property_classIntersectionProp_name = zend_string_init("classIntersectionProp", sizeof("classIntersectionProp") - 1, 1);
598 zend_string *property_classIntersectionProp_class_Traversable = zend_string_init("Traversable", sizeof("Traversable") - 1, 1);
599 zend_string *property_classIntersectionProp_class_Countable = zend_string_init("Countable", sizeof("Countable") - 1, 1);
600 zend_type_list *property_classIntersectionProp_type_list = malloc(ZEND_TYPE_LIST_SIZE(2));
601 property_classIntersectionProp_type_list->num_types = 2;
602 property_classIntersectionProp_type_list->types[0] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classIntersectionProp_class_Traversable, 0, 0);
603 property_classIntersectionProp_type_list->types[1] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classIntersectionProp_class_Countable, 0, 0);
604 zend_type property_classIntersectionProp_type = ZEND_TYPE_INIT_INTERSECTION(property_classIntersectionProp_type_list, 0);
605 zend_declare_typed_property(class_entry, property_classIntersectionProp_name, &property_classIntersectionProp_default_value, ZEND_ACC_PUBLIC, NULL, property_classIntersectionProp_type);
606 zend_string_release(property_classIntersectionProp_name);
607
608 zval property_readonlyProp_default_value;
609 ZVAL_UNDEF(&property_readonlyProp_default_value);
610 zend_string *property_readonlyProp_name = zend_string_init("readonlyProp", sizeof("readonlyProp") - 1, 1);
611 #if (PHP_VERSION_ID >= 80100)
612 zend_declare_typed_property(class_entry, property_readonlyProp_name, &property_readonlyProp_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
613 #elif (PHP_VERSION_ID >= 80000)
614 zend_declare_typed_property(class_entry, property_readonlyProp_name, &property_readonlyProp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
615 #endif
616 zend_string_release(property_readonlyProp_name);
617
618 return class_entry;
619 }
620
register_class__ZendTestMagicCall(void)621 static zend_class_entry *register_class__ZendTestMagicCall(void)
622 {
623 zend_class_entry ce, *class_entry;
624
625 INIT_CLASS_ENTRY(ce, "_ZendTestMagicCall", class__ZendTestMagicCall_methods);
626 class_entry = zend_register_internal_class_ex(&ce, NULL);
627
628 return class_entry;
629 }
630
register_class__ZendTestChildClass(zend_class_entry * class_entry__ZendTestClass)631 static zend_class_entry *register_class__ZendTestChildClass(zend_class_entry *class_entry__ZendTestClass)
632 {
633 zend_class_entry ce, *class_entry;
634
635 INIT_CLASS_ENTRY(ce, "_ZendTestChildClass", class__ZendTestChildClass_methods);
636 class_entry = zend_register_internal_class_ex(&ce, class_entry__ZendTestClass);
637
638 return class_entry;
639 }
640
register_class_ZendAttributeTest(void)641 static zend_class_entry *register_class_ZendAttributeTest(void)
642 {
643 zend_class_entry ce, *class_entry;
644
645 INIT_CLASS_ENTRY(ce, "ZendAttributeTest", class_ZendAttributeTest_methods);
646 class_entry = zend_register_internal_class_ex(&ce, NULL);
647
648 zval const_TEST_CONST_value;
649 ZVAL_LONG(&const_TEST_CONST_value, 1);
650 zend_string *const_TEST_CONST_name = zend_string_init_interned("TEST_CONST", sizeof("TEST_CONST") - 1, 1);
651 zend_class_constant *const_TEST_CONST = zend_declare_class_constant_ex(class_entry, const_TEST_CONST_name, &const_TEST_CONST_value, ZEND_ACC_PUBLIC, NULL);
652 zend_string_release(const_TEST_CONST_name);
653
654 zval property_testProp_default_value;
655 ZVAL_NULL(&property_testProp_default_value);
656 zend_string *property_testProp_name = zend_string_init("testProp", sizeof("testProp") - 1, 1);
657 zend_property_info *property_testProp = zend_declare_typed_property(class_entry, property_testProp_name, &property_testProp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_NONE(0));
658 zend_string_release(property_testProp_name);
659
660
661 zend_string *attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_0 = zend_string_init_interned("ZendTestRepeatableAttribute", sizeof("ZendTestRepeatableAttribute") - 1, 1);
662 zend_add_class_constant_attribute(class_entry, const_TEST_CONST, attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_0, 0);
663 zend_string_release(attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_0);
664
665 zend_string *attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_1 = zend_string_init_interned("ZendTestRepeatableAttribute", sizeof("ZendTestRepeatableAttribute") - 1, 1);
666 zend_add_class_constant_attribute(class_entry, const_TEST_CONST, attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_1, 0);
667 zend_string_release(attribute_name_ZendTestRepeatableAttribute_const_TEST_CONST_1);
668
669
670 zend_string *attribute_name_ZendTestRepeatableAttribute_property_testProp_0 = zend_string_init_interned("ZendTestRepeatableAttribute", sizeof("ZendTestRepeatableAttribute") - 1, 1);
671 zend_add_property_attribute(class_entry, property_testProp, attribute_name_ZendTestRepeatableAttribute_property_testProp_0, 0);
672 zend_string_release(attribute_name_ZendTestRepeatableAttribute_property_testProp_0);
673
674 zend_string *attribute_name_ZendTestPropertyAttribute_property_testProp_1 = zend_string_init_interned("ZendTestPropertyAttribute", sizeof("ZendTestPropertyAttribute") - 1, 1);
675 zend_attribute *attribute_ZendTestPropertyAttribute_property_testProp_1 = zend_add_property_attribute(class_entry, property_testProp, attribute_name_ZendTestPropertyAttribute_property_testProp_1, 1);
676 zend_string_release(attribute_name_ZendTestPropertyAttribute_property_testProp_1);
677 zval attribute_ZendTestPropertyAttribute_property_testProp_1_arg0;
678 zend_string *attribute_ZendTestPropertyAttribute_property_testProp_1_arg0_str = zend_string_init("testProp", strlen("testProp"), 1);
679 ZVAL_STR(&attribute_ZendTestPropertyAttribute_property_testProp_1_arg0, attribute_ZendTestPropertyAttribute_property_testProp_1_arg0_str);
680 ZVAL_COPY_VALUE(&attribute_ZendTestPropertyAttribute_property_testProp_1->args[0].value, &attribute_ZendTestPropertyAttribute_property_testProp_1_arg0);
681
682
683 zend_string *attribute_name_ZendTestAttribute_func_testmethod_0 = zend_string_init_interned("ZendTestAttribute", sizeof("ZendTestAttribute") - 1, 1);
684 zend_add_function_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "testmethod", sizeof("testmethod") - 1), attribute_name_ZendTestAttribute_func_testmethod_0, 0);
685 zend_string_release(attribute_name_ZendTestAttribute_func_testmethod_0);
686
687 return class_entry;
688 }
689
register_class__ZendTestTrait(void)690 static zend_class_entry *register_class__ZendTestTrait(void)
691 {
692 zend_class_entry ce, *class_entry;
693
694 INIT_CLASS_ENTRY(ce, "_ZendTestTrait", class__ZendTestTrait_methods);
695 class_entry = zend_register_internal_class_ex(&ce, NULL);
696 class_entry->ce_flags |= ZEND_ACC_TRAIT;
697
698 zval property_testProp_default_value;
699 ZVAL_NULL(&property_testProp_default_value);
700 zend_string *property_testProp_name = zend_string_init("testProp", sizeof("testProp") - 1, 1);
701 zend_declare_typed_property(class_entry, property_testProp_name, &property_testProp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_NONE(0));
702 zend_string_release(property_testProp_name);
703
704 zval property_classUnionProp_default_value;
705 ZVAL_UNDEF(&property_classUnionProp_default_value);
706 zend_string *property_classUnionProp_name = zend_string_init("classUnionProp", sizeof("classUnionProp") - 1, 1);
707 zend_string *property_classUnionProp_class_Traversable = zend_string_init("Traversable", sizeof("Traversable") - 1, 1);
708 zend_string *property_classUnionProp_class_Countable = zend_string_init("Countable", sizeof("Countable") - 1, 1);
709 zend_type_list *property_classUnionProp_type_list = malloc(ZEND_TYPE_LIST_SIZE(2));
710 property_classUnionProp_type_list->num_types = 2;
711 property_classUnionProp_type_list->types[0] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_Traversable, 0, 0);
712 property_classUnionProp_type_list->types[1] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_Countable, 0, 0);
713 zend_type property_classUnionProp_type = ZEND_TYPE_INIT_UNION(property_classUnionProp_type_list, 0);
714 zend_declare_typed_property(class_entry, property_classUnionProp_name, &property_classUnionProp_default_value, ZEND_ACC_PUBLIC, NULL, property_classUnionProp_type);
715 zend_string_release(property_classUnionProp_name);
716
717 return class_entry;
718 }
719
register_class_ZendTestAttribute(void)720 static zend_class_entry *register_class_ZendTestAttribute(void)
721 {
722 zend_class_entry ce, *class_entry;
723
724 INIT_CLASS_ENTRY(ce, "ZendTestAttribute", class_ZendTestAttribute_methods);
725 class_entry = zend_register_internal_class_ex(&ce, NULL);
726 class_entry->ce_flags |= ZEND_ACC_FINAL;
727
728 zend_string *attribute_name_Attribute_class_ZendTestAttribute_0 = zend_string_init_interned("Attribute", sizeof("Attribute") - 1, 1);
729 zend_attribute *attribute_Attribute_class_ZendTestAttribute_0 = zend_add_class_attribute(class_entry, attribute_name_Attribute_class_ZendTestAttribute_0, 1);
730 zend_string_release(attribute_name_Attribute_class_ZendTestAttribute_0);
731 zval attribute_Attribute_class_ZendTestAttribute_0_arg0;
732 ZVAL_LONG(&attribute_Attribute_class_ZendTestAttribute_0_arg0, ZEND_ATTRIBUTE_TARGET_ALL);
733 ZVAL_COPY_VALUE(&attribute_Attribute_class_ZendTestAttribute_0->args[0].value, &attribute_Attribute_class_ZendTestAttribute_0_arg0);
734
735 return class_entry;
736 }
737
register_class_ZendTestRepeatableAttribute(void)738 static zend_class_entry *register_class_ZendTestRepeatableAttribute(void)
739 {
740 zend_class_entry ce, *class_entry;
741
742 INIT_CLASS_ENTRY(ce, "ZendTestRepeatableAttribute", class_ZendTestRepeatableAttribute_methods);
743 class_entry = zend_register_internal_class_ex(&ce, NULL);
744 class_entry->ce_flags |= ZEND_ACC_FINAL;
745
746 zend_string *attribute_name_Attribute_class_ZendTestRepeatableAttribute_0 = zend_string_init_interned("Attribute", sizeof("Attribute") - 1, 1);
747 zend_attribute *attribute_Attribute_class_ZendTestRepeatableAttribute_0 = zend_add_class_attribute(class_entry, attribute_name_Attribute_class_ZendTestRepeatableAttribute_0, 1);
748 zend_string_release(attribute_name_Attribute_class_ZendTestRepeatableAttribute_0);
749 zval attribute_Attribute_class_ZendTestRepeatableAttribute_0_arg0;
750 ZVAL_LONG(&attribute_Attribute_class_ZendTestRepeatableAttribute_0_arg0, ZEND_ATTRIBUTE_TARGET_ALL | ZEND_ATTRIBUTE_IS_REPEATABLE);
751 ZVAL_COPY_VALUE(&attribute_Attribute_class_ZendTestRepeatableAttribute_0->args[0].value, &attribute_Attribute_class_ZendTestRepeatableAttribute_0_arg0);
752
753 return class_entry;
754 }
755
register_class_ZendTestParameterAttribute(void)756 static zend_class_entry *register_class_ZendTestParameterAttribute(void)
757 {
758 zend_class_entry ce, *class_entry;
759
760 INIT_CLASS_ENTRY(ce, "ZendTestParameterAttribute", class_ZendTestParameterAttribute_methods);
761 class_entry = zend_register_internal_class_ex(&ce, NULL);
762 class_entry->ce_flags |= ZEND_ACC_FINAL;
763
764 zval property_parameter_default_value;
765 ZVAL_UNDEF(&property_parameter_default_value);
766 zend_string *property_parameter_name = zend_string_init("parameter", sizeof("parameter") - 1, 1);
767 zend_declare_typed_property(class_entry, property_parameter_name, &property_parameter_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
768 zend_string_release(property_parameter_name);
769
770 zend_string *attribute_name_Attribute_class_ZendTestParameterAttribute_0 = zend_string_init_interned("Attribute", sizeof("Attribute") - 1, 1);
771 zend_attribute *attribute_Attribute_class_ZendTestParameterAttribute_0 = zend_add_class_attribute(class_entry, attribute_name_Attribute_class_ZendTestParameterAttribute_0, 1);
772 zend_string_release(attribute_name_Attribute_class_ZendTestParameterAttribute_0);
773 zval attribute_Attribute_class_ZendTestParameterAttribute_0_arg0;
774 ZVAL_LONG(&attribute_Attribute_class_ZendTestParameterAttribute_0_arg0, ZEND_ATTRIBUTE_TARGET_PARAMETER);
775 ZVAL_COPY_VALUE(&attribute_Attribute_class_ZendTestParameterAttribute_0->args[0].value, &attribute_Attribute_class_ZendTestParameterAttribute_0_arg0);
776
777 return class_entry;
778 }
779
register_class_ZendTestPropertyAttribute(void)780 static zend_class_entry *register_class_ZendTestPropertyAttribute(void)
781 {
782 zend_class_entry ce, *class_entry;
783
784 INIT_CLASS_ENTRY(ce, "ZendTestPropertyAttribute", class_ZendTestPropertyAttribute_methods);
785 class_entry = zend_register_internal_class_ex(&ce, NULL);
786 class_entry->ce_flags |= ZEND_ACC_FINAL;
787
788 zval property_parameter_default_value;
789 ZVAL_UNDEF(&property_parameter_default_value);
790 zend_string *property_parameter_name = zend_string_init("parameter", sizeof("parameter") - 1, 1);
791 zend_declare_typed_property(class_entry, property_parameter_name, &property_parameter_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
792 zend_string_release(property_parameter_name);
793
794 zend_string *attribute_name_Attribute_class_ZendTestPropertyAttribute_0 = zend_string_init_interned("Attribute", sizeof("Attribute") - 1, 1);
795 zend_attribute *attribute_Attribute_class_ZendTestPropertyAttribute_0 = zend_add_class_attribute(class_entry, attribute_name_Attribute_class_ZendTestPropertyAttribute_0, 1);
796 zend_string_release(attribute_name_Attribute_class_ZendTestPropertyAttribute_0);
797 zval attribute_Attribute_class_ZendTestPropertyAttribute_0_arg0;
798 ZVAL_LONG(&attribute_Attribute_class_ZendTestPropertyAttribute_0_arg0, ZEND_ATTRIBUTE_TARGET_PROPERTY);
799 ZVAL_COPY_VALUE(&attribute_Attribute_class_ZendTestPropertyAttribute_0->args[0].value, &attribute_Attribute_class_ZendTestPropertyAttribute_0_arg0);
800
801 return class_entry;
802 }
803
register_class_ZendTestClassWithMethodWithParameterAttribute(void)804 static zend_class_entry *register_class_ZendTestClassWithMethodWithParameterAttribute(void)
805 {
806 zend_class_entry ce, *class_entry;
807
808 INIT_CLASS_ENTRY(ce, "ZendTestClassWithMethodWithParameterAttribute", class_ZendTestClassWithMethodWithParameterAttribute_methods);
809 class_entry = zend_register_internal_class_ex(&ce, NULL);
810
811
812 zend_string *attribute_name_ZendTestParameterAttribute_func_no_override_arg0_0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
813 zend_attribute *attribute_ZendTestParameterAttribute_func_no_override_arg0_0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "no_override", sizeof("no_override") - 1), 0, attribute_name_ZendTestParameterAttribute_func_no_override_arg0_0, 1);
814 zend_string_release(attribute_name_ZendTestParameterAttribute_func_no_override_arg0_0);
815 zval attribute_ZendTestParameterAttribute_func_no_override_arg0_0_arg0;
816 zend_string *attribute_ZendTestParameterAttribute_func_no_override_arg0_0_arg0_str = zend_string_init("value2", strlen("value2"), 1);
817 ZVAL_STR(&attribute_ZendTestParameterAttribute_func_no_override_arg0_0_arg0, attribute_ZendTestParameterAttribute_func_no_override_arg0_0_arg0_str);
818 ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_func_no_override_arg0_0->args[0].value, &attribute_ZendTestParameterAttribute_func_no_override_arg0_0_arg0);
819
820 zend_string *attribute_name_ZendTestParameterAttribute_func_override_arg0_0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
821 zend_attribute *attribute_ZendTestParameterAttribute_func_override_arg0_0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "override", sizeof("override") - 1), 0, attribute_name_ZendTestParameterAttribute_func_override_arg0_0, 1);
822 zend_string_release(attribute_name_ZendTestParameterAttribute_func_override_arg0_0);
823 zval attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0;
824 zend_string *attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0_str = zend_string_init("value3", strlen("value3"), 1);
825 ZVAL_STR(&attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0, attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0_str);
826 ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_func_override_arg0_0->args[0].value, &attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0);
827
828 return class_entry;
829 }
830
register_class_ZendTestChildClassWithMethodWithParameterAttribute(zend_class_entry * class_entry_ZendTestClassWithMethodWithParameterAttribute)831 static zend_class_entry *register_class_ZendTestChildClassWithMethodWithParameterAttribute(zend_class_entry *class_entry_ZendTestClassWithMethodWithParameterAttribute)
832 {
833 zend_class_entry ce, *class_entry;
834
835 INIT_CLASS_ENTRY(ce, "ZendTestChildClassWithMethodWithParameterAttribute", class_ZendTestChildClassWithMethodWithParameterAttribute_methods);
836 class_entry = zend_register_internal_class_ex(&ce, class_entry_ZendTestClassWithMethodWithParameterAttribute);
837
838
839 zend_string *attribute_name_ZendTestParameterAttribute_func_override_arg0_0 = zend_string_init_interned("ZendTestParameterAttribute", sizeof("ZendTestParameterAttribute") - 1, 1);
840 zend_attribute *attribute_ZendTestParameterAttribute_func_override_arg0_0 = zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "override", sizeof("override") - 1), 0, attribute_name_ZendTestParameterAttribute_func_override_arg0_0, 1);
841 zend_string_release(attribute_name_ZendTestParameterAttribute_func_override_arg0_0);
842 zval attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0;
843 zend_string *attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0_str = zend_string_init("value4", strlen("value4"), 1);
844 ZVAL_STR(&attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0, attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0_str);
845 ZVAL_COPY_VALUE(&attribute_ZendTestParameterAttribute_func_override_arg0_0->args[0].value, &attribute_ZendTestParameterAttribute_func_override_arg0_0_arg0);
846
847 return class_entry;
848 }
849
register_class_ZendTestClassWithPropertyAttribute(void)850 static zend_class_entry *register_class_ZendTestClassWithPropertyAttribute(void)
851 {
852 zend_class_entry ce, *class_entry;
853
854 INIT_CLASS_ENTRY(ce, "ZendTestClassWithPropertyAttribute", class_ZendTestClassWithPropertyAttribute_methods);
855 class_entry = zend_register_internal_class_ex(&ce, NULL);
856
857 zval property_attributed_default_value;
858 ZVAL_UNDEF(&property_attributed_default_value);
859 zend_string *property_attributed_name = zend_string_init("attributed", sizeof("attributed") - 1, 1);
860 zend_property_info *property_attributed = zend_declare_typed_property(class_entry, property_attributed_name, &property_attributed_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
861 zend_string_release(property_attributed_name);
862
863
864 zend_string *attribute_name_ZendTestAttribute_property_attributed_0 = zend_string_init_interned("ZendTestAttribute", sizeof("ZendTestAttribute") - 1, 1);
865 zend_add_property_attribute(class_entry, property_attributed, attribute_name_ZendTestAttribute_property_attributed_0, 0);
866 zend_string_release(attribute_name_ZendTestAttribute_property_attributed_0);
867
868 return class_entry;
869 }
870
register_class_ZendTestForbidDynamicCall(void)871 static zend_class_entry *register_class_ZendTestForbidDynamicCall(void)
872 {
873 zend_class_entry ce, *class_entry;
874
875 INIT_CLASS_ENTRY(ce, "ZendTestForbidDynamicCall", class_ZendTestForbidDynamicCall_methods);
876 class_entry = zend_register_internal_class_ex(&ce, NULL);
877 class_entry->ce_flags |= ZEND_ACC_FINAL;
878
879 return class_entry;
880 }
881
882 #if (PHP_VERSION_ID >= 80100)
register_class_ZendTestUnitEnum(void)883 static zend_class_entry *register_class_ZendTestUnitEnum(void)
884 {
885 zend_class_entry *class_entry = zend_register_internal_enum("ZendTestUnitEnum", IS_UNDEF, class_ZendTestUnitEnum_methods);
886
887 zend_enum_add_case_cstr(class_entry, "Foo", NULL);
888
889 zend_enum_add_case_cstr(class_entry, "Bar", NULL);
890
891 return class_entry;
892 }
893 #endif
894
895 #if (PHP_VERSION_ID >= 80100)
register_class_ZendTestStringEnum(void)896 static zend_class_entry *register_class_ZendTestStringEnum(void)
897 {
898 zend_class_entry *class_entry = zend_register_internal_enum("ZendTestStringEnum", IS_STRING, class_ZendTestStringEnum_methods);
899
900 zval enum_case_Foo_value;
901 zend_string *enum_case_Foo_value_str = zend_string_init("Test1", strlen("Test1"), 1);
902 ZVAL_STR(&enum_case_Foo_value, enum_case_Foo_value_str);
903 zend_enum_add_case_cstr(class_entry, "Foo", &enum_case_Foo_value);
904
905 zval enum_case_Bar_value;
906 zend_string *enum_case_Bar_value_str = zend_string_init("Test2", strlen("Test2"), 1);
907 ZVAL_STR(&enum_case_Bar_value, enum_case_Bar_value_str);
908 zend_enum_add_case_cstr(class_entry, "Bar", &enum_case_Bar_value);
909
910 zval enum_case_Baz_value;
911 zend_string *enum_case_Baz_value_str = zend_string_init("Test2\\a", strlen("Test2\\a"), 1);
912 ZVAL_STR(&enum_case_Baz_value, enum_case_Baz_value_str);
913 zend_enum_add_case_cstr(class_entry, "Baz", &enum_case_Baz_value);
914
915 zval enum_case_FortyTwo_value;
916 zend_string *enum_case_FortyTwo_value_str = zend_string_init("42", strlen("42"), 1);
917 ZVAL_STR(&enum_case_FortyTwo_value, enum_case_FortyTwo_value_str);
918 zend_enum_add_case_cstr(class_entry, "FortyTwo", &enum_case_FortyTwo_value);
919
920 return class_entry;
921 }
922 #endif
923
924 #if (PHP_VERSION_ID >= 80100)
register_class_ZendTestIntEnum(void)925 static zend_class_entry *register_class_ZendTestIntEnum(void)
926 {
927 zend_class_entry *class_entry = zend_register_internal_enum("ZendTestIntEnum", IS_LONG, class_ZendTestIntEnum_methods);
928
929 zval enum_case_Foo_value;
930 ZVAL_LONG(&enum_case_Foo_value, 1);
931 zend_enum_add_case_cstr(class_entry, "Foo", &enum_case_Foo_value);
932
933 zval enum_case_Bar_value;
934 ZVAL_LONG(&enum_case_Bar_value, 3);
935 zend_enum_add_case_cstr(class_entry, "Bar", &enum_case_Bar_value);
936
937 zval enum_case_Baz_value;
938 ZVAL_LONG(&enum_case_Baz_value, -1);
939 zend_enum_add_case_cstr(class_entry, "Baz", &enum_case_Baz_value);
940
941 return class_entry;
942 }
943 #endif
944
register_class_ZendTestNS_Foo(void)945 static zend_class_entry *register_class_ZendTestNS_Foo(void)
946 {
947 zend_class_entry ce, *class_entry;
948
949 INIT_NS_CLASS_ENTRY(ce, "ZendTestNS", "Foo", class_ZendTestNS_Foo_methods);
950 class_entry = zend_register_internal_class_ex(&ce, NULL);
951
952 return class_entry;
953 }
954
register_class_ZendTestNS_UnlikelyCompileError(void)955 static zend_class_entry *register_class_ZendTestNS_UnlikelyCompileError(void)
956 {
957 zend_class_entry ce, *class_entry;
958
959 INIT_NS_CLASS_ENTRY(ce, "ZendTestNS", "UnlikelyCompileError", class_ZendTestNS_UnlikelyCompileError_methods);
960 class_entry = zend_register_internal_class_ex(&ce, NULL);
961
962 return class_entry;
963 }
964
register_class_ZendTestNS_NotUnlikelyCompileError(void)965 static zend_class_entry *register_class_ZendTestNS_NotUnlikelyCompileError(void)
966 {
967 zend_class_entry ce, *class_entry;
968
969 INIT_NS_CLASS_ENTRY(ce, "ZendTestNS", "NotUnlikelyCompileError", class_ZendTestNS_NotUnlikelyCompileError_methods);
970 class_entry = zend_register_internal_class_ex(&ce, NULL);
971
972 return class_entry;
973 }
974
register_class_ZendTestNS2_Foo(void)975 static zend_class_entry *register_class_ZendTestNS2_Foo(void)
976 {
977 zend_class_entry ce, *class_entry;
978
979 INIT_NS_CLASS_ENTRY(ce, "ZendTestNS2", "Foo", class_ZendTestNS2_Foo_methods);
980 class_entry = zend_register_internal_class_ex(&ce, NULL);
981
982 zval property_foo_default_value;
983 ZVAL_UNDEF(&property_foo_default_value);
984 zend_string *property_foo_name = zend_string_init("foo", sizeof("foo") - 1, 1);
985 zend_string *property_foo_class_ZendTestNS2_ZendSubNS_Foo = zend_string_init("ZendTestNS2\\ZendSubNS\\Foo", sizeof("ZendTestNS2\\ZendSubNS\\Foo")-1, 1);
986 zend_declare_typed_property(class_entry, property_foo_name, &property_foo_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_CLASS(property_foo_class_ZendTestNS2_ZendSubNS_Foo, 0, 0));
987 zend_string_release(property_foo_name);
988
989 return class_entry;
990 }
991
register_class_ZendTestNS2_ZendSubNS_Foo(void)992 static zend_class_entry *register_class_ZendTestNS2_ZendSubNS_Foo(void)
993 {
994 zend_class_entry ce, *class_entry;
995
996 INIT_NS_CLASS_ENTRY(ce, "ZendTestNS2\\ZendSubNS", "Foo", class_ZendTestNS2_ZendSubNS_Foo_methods);
997 class_entry = zend_register_internal_class_ex(&ce, NULL);
998
999 return class_entry;
1000 }
1001