History log of /PHP-8.0/Zend/zend_compile.c (Results 1 – 25 of 2365)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


12345678910>>...95