Commit c1c2132
Fix JIT trace assertions, memory leak, and type inference for generics
- Fix optimizer type inference: add MAY_BE_OBJECT for generic class types
(ZEND_TYPE_IS_GENERIC_CLASS) in zend_convert_type(), fixing memory leaks
and incorrect type inference when JIT compiles functions with generic
class type parameters like Box<int>
- Fix JIT trace recording: handle ZEND_INIT_STATIC_METHOD_CALL generic
args in trace entry and properly skip ZEND_GENERIC_ASSIGN_TYPE_ARG
opcodes during tracing
- Fix JIT IR: handle generic_args in INIT_STATIC_METHOD_CALL compilation
- Update reflection tests for generic class entries (ZendTestGenericClass)
- Fix optimizer: handle ZEND_GENERIC_ASSIGN_TYPE_ARG in SSA/optimizer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 5765faf commit c1c2132
File tree
11 files changed
+255
-13
lines changed- Zend
- Optimizer
- ext
- opcache/jit
- reflection/tests
11 files changed
+255
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2402 | 2402 | | |
2403 | 2403 | | |
2404 | 2404 | | |
| 2405 | + | |
| 2406 | + | |
| 2407 | + | |
| 2408 | + | |
2405 | 2409 | | |
2406 | 2410 | | |
2407 | 2411 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
302 | 302 | | |
303 | 303 | | |
304 | 304 | | |
305 | | - | |
306 | 305 | | |
307 | 306 | | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
308 | 310 | | |
309 | | - | |
| 311 | + | |
310 | 312 | | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | 313 | | |
318 | 314 | | |
319 | 315 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5793 | 5793 | | |
5794 | 5794 | | |
5795 | 5795 | | |
| 5796 | + | |
5796 | 5797 | | |
5797 | 5798 | | |
5798 | 5799 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
| 64 | + | |
63 | 65 | | |
64 | 66 | | |
65 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
396 | 396 | | |
397 | 397 | | |
398 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
399 | 402 | | |
400 | 403 | | |
401 | 404 | | |
| |||
440 | 443 | | |
441 | 444 | | |
442 | 445 | | |
| 446 | + | |
| 447 | + | |
443 | 448 | | |
444 | 449 | | |
445 | 450 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4616 | 4616 | | |
4617 | 4617 | | |
4618 | 4618 | | |
| 4619 | + | |
| 4620 | + | |
| 4621 | + | |
| 4622 | + | |
| 4623 | + | |
| 4624 | + | |
| 4625 | + | |
| 4626 | + | |
| 4627 | + | |
| 4628 | + | |
| 4629 | + | |
| 4630 | + | |
4619 | 4631 | | |
4620 | 4632 | | |
4621 | 4633 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17203 | 17203 | | |
17204 | 17204 | | |
17205 | 17205 | | |
17206 | | - | |
| 17206 | + | |
| 17207 | + | |
| 17208 | + | |
| 17209 | + | |
| 17210 | + | |
| 17211 | + | |
| 17212 | + | |
17207 | 17213 | | |
17208 | 17214 | | |
17209 | 17215 | | |
| |||
0 commit comments