Máté Kocsis
95cff3ebf2
Retain the original formatting character in test
2020-07-10 23:15:08 +02:00
Máté Kocsis
d30cd7d7e7
Review the usage of apostrophes in error messages
...
Closes GH-5590
2020-07-10 21:05:28 +02:00
George Peter Banyard
2297a6d364
Use dedicated function for illegal offset type error
2020-07-10 16:49:52 +02:00
Nikita Popov
5fc70243d7
Add missing addref for MATCH_ERROR operand
2020-07-10 15:58:42 +02:00
Nikita Popov
6556846754
Fixed bug #79818
...
Only destroy the variable directly before reassigning it. The
value could be read in the meantime.
2020-07-10 14:36:50 +02:00
twosee
b284ba3943
Add zend_wrong_parameter_error to reduce the size of ZPP macro
...
Closes GH-5831.
2020-07-10 10:12:23 +02:00
Ilija Tovilo
9fa1d13301
Implement match expression
...
RFC: https://wiki.php.net/rfc/match_expression_v2
Closes GH-5371.
2020-07-09 23:52:17 +02:00
George Peter Banyard
9839752a9c
Voidify some ZEND_API functions
...
Closes GH-5805
2020-07-09 14:15:57 +02:00
Nikita Popov
613a56d1cb
Remove FREE_UNFETCHED concept
...
In master normal FREE_OPs work like FREE_UNFETCHED_OP used to, so
there is no point in keeping this distinction anymore, it's just
confusing.
2020-07-09 11:58:33 +02:00
Nikita Popov
c05bfa362b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Switch back to FREE_UNFETCHED_OP_DATA
2020-07-09 11:54:44 +02:00
Nikita Popov
8318379dd3
Switch back to FREE_UNFETCHED_OP_DATA
...
Some of the code paths leading to this do not fetch op data.
Hopefully this fixes the release build failure.
2020-07-09 11:54:08 +02:00
Nikita Popov
04b17217b4
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix bug #79599 in a different way
Revert "Fixed bug #97599 (coredump in set_error_handler)"
2020-07-09 11:18:03 +02:00
Nikita Popov
5795dfda93
Fix bug #79599 in a different way
...
Move the emission of the undefined variable notice before the
array separation.
2020-07-09 11:12:44 +02:00
Nikita Popov
a3cb612243
Revert "Fixed bug #97599 (coredump in set_error_handler)"
...
This reverts commit ccd41e0833 .
This causes a large performance regression when notices are thrown
and large arrays are in scope, see bug #79794 .
2020-07-09 11:12:44 +02:00
Derick Rethans
fc7650944a
Merge branch 'PHP-7.4'
2020-07-09 09:51:15 +01:00
Derick Rethans
972383fda4
Revert "Partial fixed bug #79649 (Altering disable_functions from module init corrupts memory)"
...
This reverts commit a297c09da5 .
2020-07-09 09:50:25 +01:00
George Peter Banyard
7ac9e9bf64
Use ZPP callable check in zend built in functions
2020-07-08 19:38:46 +02:00
Nikita Popov
2af1d36bc5
Skip special function optimization for redeclared disabled functions
...
As pointed out on GH-5817.
2020-07-08 10:11:00 +02:00
Nikita Popov
e45f7053cf
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79793
2020-07-07 16:33:06 +02:00
Nikita Popov
77acc8a069
Fixed bug #79793
...
Make sure the string key is not released while throwing the
undefined index warning.
2020-07-07 16:29:48 +02:00
Nikita Popov
beb002a867
Fixed bug #79791
...
First throw the undefined variable warning, and then set the
variable to null. Otherwise we're not guaranteed that it's
actually null afterwards.
2020-07-07 16:00:50 +02:00
Nikita Popov
cdc4ea2a5c
JIT support for undefined index/offset handling
2020-07-07 15:13:03 +02:00
Nikita Popov
f497b69944
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79784
2020-07-07 14:24:39 +02:00
Nikita Popov
62bec0e083
Fixed bug #79784
...
The fix here is essentially the same as for bug #78598 , just for
the undefined variable notice, rather than the undefined index one.
2020-07-07 14:22:58 +02:00
Nikita Popov
2c73bf7e3f
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78598
2020-07-07 12:28:35 +02:00
Nikita Popov
220880ad2d
Fixed bug #78598
...
When performing an RW modification of an array offset, the undefined
offset warning may call an error handler / OB callback, which may
destroy the array we're supposed to change. Detect this by temporarily
incrementing the reference count. If we find that the array has been
modified/destroyed in the meantime, we do nothing -- the execution
model here would be that the modification has happened on the destroyed
version of the array.
2020-07-07 12:13:58 +02:00
Nikita Popov
ecf368b8f2
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79792
2020-07-07 12:00:34 +02:00
Nikita Popov
48a247178e
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79792
2020-07-07 11:59:40 +02:00
Nikita Popov
64931fd3c4
Fixed bug #79792
...
We need to remove the iterators even if the array is empty (we
will not create one if the first place, but the array may become
empty after the fact).
2020-07-07 11:58:25 +02:00
Nikita Popov
b48bd671b8
Assert no exception if using NEXT_OPCODE()
...
When NEXT_OPCODE() is used instead of NEXT_OPCODE_CHECK_EXCEPTION(),
assert that there is indeed no exception.
2020-07-07 11:34:43 +02:00
Nikita Popov
5d0687e895
Assert exception set in HANDLE_EXCEPTION()
...
Some code paths were checking this manually, but we can turn this
into a general assertion to avoid surprises (functions returning
failure without throwing).
2020-07-07 11:31:05 +02:00
Nikita Popov
fb91611276
Remove #undefs from vm_gen
...
Possibly these were needed for VM_EXPORT, but they don't serve a
purpose now.
2020-07-07 11:25:28 +02:00
Nikita Popov
002c264d07
Remove ZEND_VM_EXPORT functionality
...
This hasn't been used since forever and makes things more confusing
than they already are.
2020-07-07 11:23:28 +02:00
Nikita Popov
eaf6303a74
Fixed bug #79790
...
I haven't tracked down in detail where the interaction with
increment_function comes from, but the root problem here is failure
to handle the illegal offset type exception.
2020-07-07 10:56:55 +02:00
Nikita Popov
e0743d0f91
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79779
2020-07-07 10:27:53 +02:00
Nikita Popov
6a9d934b2c
Fixed bug #79779
...
ASSIGN_OBJ_REF was not handling in zend_wrong_string_offset.
2020-07-07 10:27:22 +02:00
Nikita Popov
7da8c48a9b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79778
2020-07-07 10:20:31 +02:00
Nikita Popov
d9b4974cbc
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79778
2020-07-07 10:20:11 +02:00
Nikita Popov
b765f96f5f
Fixed bug #79778
...
In the interest of avoiding side-effects during dumping, I'm
replacing the value with a <constant ast> string instead of
performing an update constant operation.
2020-07-07 10:19:39 +02:00
Nikita Popov
1e39469678
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79783
2020-07-07 09:57:07 +02:00
Nikita Popov
971e5c5186
Fixed bug #79783
...
Make sure we don't drop the by-reference check when passing the
result of a VM builtin function.
2020-07-07 09:56:14 +02:00
Nikita Popov
302933daea
Remove no_separation flag
2020-07-07 09:30:24 +02:00
Nikita Popov
5b4bf4d3e9
Fixup test
2020-07-07 09:23:05 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
...
Closes GH-5758
2020-07-06 21:13:34 +02:00
Nikita Popov
0280b83e11
Avoid some unnecessary uses of no_separation=0
...
For the rare cases where references are part of the API,
construct them explicitly. Otherwise do not allow separation.
2020-07-06 19:05:57 +02:00
moliata
4a0d6901bb
refactor: class constants parsing
...
As part of my work on typed class constants, I wanted to make a
separate pull request for unrelated changes.
These include:
* Moving from ast->child[0]->attr to ast->attr
* Making zend_ast_export_ex() export class constants' visibility
* Extracting an additional zend_compile_class_const_group() function
Closes GH-5812.
2020-07-06 18:34:41 +02:00
Máté Kocsis
b18b2c8fe5
Add string or object ZPP macros
...
Closes GH-5788
2020-07-06 12:42:02 +02:00
Nikita Popov
75c4e613e4
Correctly determine arg name of USER_ARG_INFO functions
2020-07-06 11:51:10 +02:00
Nikita Popov
795d2cbd71
Reuse warning function
2020-07-06 10:38:02 +02:00
Nikita Popov
49396f817a
Fixed bug #79777
2020-07-04 09:59:42 +02:00