#
d5373eac |
| 02-Sep-2022 |
Ilija Tovilo |
Fix lsp error in eval'd code referring to incorrect class for static type Fixes GH-9407 Closes GH-9471
|
#
73c2d79f |
| 22-Aug-2022 |
Dmitry Stogov |
Fix memory leaks Fixes oss-fuzz #50078
|
#
c06e1abb |
| 17-May-2022 |
Derick Rethans |
Emit EXT_STMT for each 'elseif' clause
|
#
d478ae73 |
| 05-Nov-2021 |
Nikita Popov |
Don't implement Stringable on traits Traits do not support interfaces, so we should not implement Stringable on them. Also check the __toString() return type in the same way oth
Don't implement Stringable on traits Traits do not support interfaces, so we should not implement Stringable on them. Also check the __toString() return type in the same way other magic methods do, otherwise we would now miss the check in the trait case.
show more ...
|
#
69fb20f1 |
| 05-Oct-2021 |
Dmitry Stogov |
Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
|
#
36f5d719 |
| 01-Jul-2021 |
Nikita Popov |
Fix leak on foreach by ref assign to property In this case we ended up creating an ASSIGN_OBJ_REF with VAR result operand, which was not freed. Fix this by implementing assign_r
Fix leak on foreach by ref assign to property In this case we ended up creating an ASSIGN_OBJ_REF with VAR result operand, which was not freed. Fix this by implementing assign_ref_znode the same was as assign_znode, i.e. performing an assignment with result and then freeing the result, which will result mark the result as UNUSED. This is more robust than the special handling for result == NULL that was used before. This fixes one of the issues reported in bug #81190.
show more ...
|
#
c7022020 |
| 15-Feb-2021 |
Nikita Popov |
Fix assertion failure in cufa optimization with named args Fixes oss-fuzz#30764.
|
#
18507853 |
| 25-Jan-2021 |
Nikita Popov |
Improve switch continue warning Don't suggest "continue N+1" if there is no wrapping loop. The resulting code would be illegal.
|
#
f9fbba41 |
| 13-Jan-2021 |
Daniil Gentili |
Fixed bug #80596: Fix anonymous class union typehint errors Cut off part after null byte when resolving the class name, to avoid cutting off a larger part lateron. Closes GH-660
Fixed bug #80596: Fix anonymous class union typehint errors Cut off part after null byte when resolving the class name, to avoid cutting off a larger part lateron. Closes GH-6601.
show more ...
|
#
5dfec886 |
| 01-Dec-2020 |
Nikita Popov |
Fix use after free with file cache and arena allocated strings
|
Revision tags: php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1 |
|
#
6fb3d925 |
| 09-Nov-2020 |
Nikita Popov |
Fixed bug #80334 If assert() was called with named args, add description as named arg as well.
|
#
e0d6c3f7 |
| 04-Nov-2020 |
Nikita Popov |
Fix dynamic function definition in preload script We should use normal function renaming if the function is declared during preloading itself, rather than afterwards. This fixes
Fix dynamic function definition in preload script We should use normal function renaming if the function is declared during preloading itself, rather than afterwards. This fixes a regression introduced by 68f80be9d1380de731930187250a7ed6b55ae196.
show more ...
|
#
54668a44 |
| 03-Nov-2020 |
Nikita Popov |
Don't disable early binding during preloading script We should only disable early binding during the opcache_compile_file() calls, not inside the preloading script or anything it include
Don't disable early binding during preloading script We should only disable early binding during the opcache_compile_file() calls, not inside the preloading script or anything it includes. The right condition to check for is whether we compile the file without execution, as declaring classes is "execution".
show more ...
|
#
6d6fadeb |
| 02-Nov-2020 |
Bogdan Ungureanu |
Improved error message for typed class properties with null as default value Closes GH-6396.
|
#
68f80be9 |
| 28-Oct-2020 |
Dmitry Stogov |
Fixed run-time binding of preloaded dynamically declared function
|
Revision tags: php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1 |
|
#
f9b7609d |
| 12-Oct-2020 |
Nikita Popov |
Fixed bug #80225 Namespaced and declares have a different interpretation of what "first statement" means.
|
Revision tags: php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23 |
|
#
36ed9966 |
| 22-Sep-2020 |
Nikita Popov |
Allow attributes to be applied to property/constant groups Remove arbitrary restriction that attributes cannot be applied to property/constant groups. The attribute applies to a
Allow attributes to be applied to property/constant groups Remove arbitrary restriction that attributes cannot be applied to property/constant groups. The attribute applies to all elements of the group, just like modifiers and types do. See also https://externals.io/message/111914. Closes GH-6186.
show more ...
|
#
2772751b |
| 27-Sep-2020 |
Nikita Popov |
Make constexpr compilation robust against multiple compilation Instead of setting the old AST type to zero, replace the AST with the compiled constexpr AST zval. This requires passing in
Make constexpr compilation robust against multiple compilation Instead of setting the old AST type to zero, replace the AST with the compiled constexpr AST zval. This requires passing in a zend_ast** instead of a zend_ast*. This allows compiling ASTs containing constexprs multiple times -- the second time, the existing compiled representation will be resused. This means we no longer need to copy the attributes AST for promoted properties.
show more ...
|
#
5686c16d |
| 23-Sep-2020 |
Nikita Popov |
Honor strict_types=1 for attributes, improve backtraces Make ReflectionAttribute::newInstance() respect the strict_types=1 declaration at the attribute use-site. More generally, pretend
Honor strict_types=1 for attributes, improve backtraces Make ReflectionAttribute::newInstance() respect the strict_types=1 declaration at the attribute use-site. More generally, pretend that we are calling the attribute constructor from the place where the attribute is used, which also means that the attribute location will show up properly in backtraces and inside "called in" error information. This requires us to store the attributes strict_types scope (as flags), as well as the attribute line number. The attribute filename can be recovered from the symbol it is used on. We might want to expose the attribute line number via reflection as well. See also https://externals.io/message/111915. Closes GH-6201.
show more ...
|
#
c5f93d19 |
| 21-Sep-2020 |
Nikita Popov |
Fix detection of code outside namespace Due to improvements to early binding, the opcode based check is no longer accurate. Reuse the syntactic check we're already using for declares
Fix detection of code outside namespace Due to improvements to early binding, the opcode based check is no longer accurate. Reuse the syntactic check we're already using for declares instead.
show more ...
|
#
34bb5ba2 |
| 18-Sep-2020 |
Nikita Popov |
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remov
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remove support for EXT_NOP.
show more ...
|
Revision tags: php-8.0.0beta4 |
|
#
16b9f196 |
| 15-Sep-2020 |
Nikita Popov |
Fix compile-time/run-time discrepancies with unary operators This addresses two issues: * ~ throws for a number of types, and we should not compile-time evaluate in that case. Ad
Fix compile-time/run-time discrepancies with unary operators This addresses two issues: * ~ throws for a number of types, and we should not compile-time evaluate in that case. Add a check similar to what we do for binary ops. * Unary +/- may produce a different error message due to canonicalization of the constant operand to the RHS. To avoid this, put the constant operand on the RHS right away. Fixes oss-fuzz #25649.
show more ...
|
Revision tags: php-7.4.11RC1, php-7.3.23RC1 |
|
#
09904242 |
| 06-Sep-2020 |
Tyson Andre |
Avoid gap in AST_CLASS child nodes for attributes See https://github.com/nikic/php-ast/pull/181 > Hm, I'm thinking it would make more sense to change the structure in php-src. >
Avoid gap in AST_CLASS child nodes for attributes See https://github.com/nikic/php-ast/pull/181 > Hm, I'm thinking it would make more sense to change the structure in php-src. > All the function types have consistent AST structure, but there's no reason at > all why classes should be consistent with functions. It's unusual to have an unused child node between other child nodes that are used (for name, extends, implements, and attributes of AST_CLASS) > That gap is a leftover from a previous refactoring. An earlier version of > attributes extended `zend_ast_decl` with a new member called `attributes` and > therefore did not need to handle functions and classes in different ways. Closes GH-6088
show more ...
|
#
8a49310f |
| 05-Sep-2020 |
Ilija Tovilo |
Adjust assignment line number for match Otherwise the assignment will have the same number as the default arm which will 1. mis-trigger a breakpoint and 2. mark the line as covered e
Adjust assignment line number for match Otherwise the assignment will have the same number as the default arm which will 1. mis-trigger a breakpoint and 2. mark the line as covered even when it isn't. Closes GH-6083
show more ...
|
#
f5dbebd8 |
| 07-Sep-2020 |
Nikita Popov |
Accept zend_string instead of zval in zend_compile_string
|