1
0
mirror of https://github.com/php/php-src.git synced 2026-04-17 21:11:02 +02:00
Commit Graph

60348 Commits

Author SHA1 Message Date
Dmitry Stogov
b2c43a4efb Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Flush error messages emitted during preloading
2021-10-08 12:35:38 +03:00
Dmitry Stogov
45b127ad4a Flush error messages emitted during preloading 2021-10-08 12:34:25 +03:00
Dmitry Stogov
c9fb384c40 JIT ARM64: Use proper register 2021-10-08 09:56:44 +03:00
Dmitry Stogov
d12d987686 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed FETCH_LIST_R on string
2021-10-07 22:15:30 +03:00
Dmitry Stogov
7cea20f937 JIT: Fixed FETCH_LIST_R on string 2021-10-07 22:13:39 +03:00
Dmitry Stogov
6bf1d24fbc Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed bug #81512 (Unexpected behavior with arrays and JIT)
2021-10-07 21:29:04 +03:00
Dmitry Stogov
b47a48ff80 Fixed bug #81512 (Unexpected behavior with arrays and JIT) 2021-10-07 21:24:38 +03:00
Nikita Popov
90ceac6f7c Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix failing PDO PgSQL test
2021-10-07 20:11:53 +02:00
Nikita Popov
56c9ea1881 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix failing PDO PgSQL test
2021-10-07 20:11:26 +02:00
Nikita Popov
c0cbf3a6eb Fix failing PDO PgSQL test
This now prints an additional

> CONTEXT:  unnamed portal parameter $1 = ''

on azure, presumably as a result of a version update or configuration
change. Strip this additional line from the error info, the same as
already done in one other place in the test.
2021-10-07 20:10:45 +02:00
Nikita Popov
71e82b9de2 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Check exception after undef var notice
2021-10-07 17:01:16 +02:00
Nikita Popov
b564113756 Check exception after undef var notice
For simple assignments, we may not emit an exception check elsewhere,
so perform it directly after the undef var notice.
2021-10-07 16:54:26 +02:00
Nikita Popov
d5e4f8ffe8 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Handle undefined dim in assign_dim_helper
2021-10-07 15:35:45 +02:00
Nikita Popov
08c29a657d Handle undefined dim in assign_dim_helper
Not only the value can be undefined here, but the offset as well.
2021-10-07 15:35:16 +02:00
Nikita Popov
e32c850d4f Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Set opline before calling undef op helper
  JIT: Fixed wrong comparison skip
2021-10-07 14:40:38 +02:00
Nikita Popov
455837139e Set opline before calling undef op helper 2021-10-07 14:38:02 +02:00
Máté Kocsis
d9e5e63032 Add more specific array return type hints for various extensions - part 6 (#7474) 2021-10-07 14:29:29 +02:00
Dmitry Stogov
a743fd7633 JIT: Fixed wrong comparison skip 2021-10-07 15:27:56 +03:00
Dmitry Stogov
7eab93bcbb Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed incorrect reference handling in PRE_INC/DEC_OBJ
2021-10-07 14:34:46 +03:00
Dmitry Stogov
6ab36fb6f9 JIT: Fixed incorrect reference handling in PRE_INC/DEC_OBJ 2021-10-07 14:34:18 +03:00
Dmitry Stogov
919fd56d7a Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed incorrect code generation for JMPZ
2021-10-07 13:55:14 +03:00
Dmitry Stogov
cd45bd0a81 JIT: Fixed incorrect code generation for JMPZ 2021-10-07 13:48:28 +03:00
Nikita Popov
661cd1bf27 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed bug #54350
2021-10-07 11:46:49 +02:00
Nikita Popov
c69ffa8f84 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fixed bug #54350
2021-10-07 11:46:10 +02:00
Nikita Popov
1519770288 Fixed bug #54350
Don't allow calling fclose() on the stream while in the user
filter callback. This is basically the same protection as xp_ssl
streams use during callback invocations.

There are more issues in this general area (e.g. stack overflow
on stream_filter_remove), but this addresses freeing the stream
during the filter callback invocation at least.
2021-10-07 11:44:41 +02:00
Dmitry Stogov
fd8dfc4248 XFAIL: Return types cannot be inferred through prototypes 2021-10-06 17:21:02 +03:00
Dmitry Stogov
5557d15311 JIT ARM64: Fixed NaN handling 2021-10-06 16:50:25 +03:00
Dmitry Stogov
6e086681f5 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed NaN handling
2021-10-06 16:36:38 +03:00
Dmitry Stogov
8a0873020a JIT: Fixed NaN handling 2021-10-06 16:35:33 +03:00
Dmitry Stogov
0b5d62e39c Fixed type inference that may cause JIT failure
PHP allows to override a method that returns non-reference with a method
that returns a reference. This mean that we cannot use prototypes to
predict return types of a child functions.
2021-10-06 14:55:34 +03:00
Dmitry Stogov
5ed654ee95 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed register clobbering
2021-10-06 12:22:06 +03:00
Dmitry Stogov
f681f9075c JIT: Fixed register clobbering 2021-10-06 12:10:39 +03:00
Nikita Popov
3661c1932c Fix array cast type inference wrt packed arrays
Use KEY_LONG instead of PACKED if it's possible for the array to
be empty. It won't be packed in that case.

Fixes oss-fuzz #39650.
2021-10-06 10:50:44 +02:00
Dmitry Stogov
831a1717f6 JIT: Fixed incorrect overflow detection introduced in a5e502ef4d 2021-10-06 10:18:18 +03:00
Derick Rethans
6166ac51b7 Force UTC 2021-10-05 18:28:30 +01:00
Matteo Beccati
958daa6529 Fix #81509 pg_end_copy still expects a resource 2021-10-05 18:13:50 +02:00
Matteo Beccati
202a099aee Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Add test for pg_put_line() and pg_end_copy()
2021-10-05 18:13:20 +02:00
Matteo Beccati
9af6882d28 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Add test for pg_put_line() and pg_end_copy()
2021-10-05 17:44:19 +02:00
Matteo Beccati
be36bf5aca Add test for pg_put_line() and pg_end_copy() 2021-10-05 17:43:48 +02:00
Ben Morss
b4c200f9fe Require libavif version >= 0.8.2
Closes GH-7554.
2021-10-05 17:01:07 +02:00
Nikita Popov
a4fa00ead3 Reuse wrong string offset logic in jit
JIT contains a copy of this function that effectively only differs
by fetching current_execute_data from EG. We can do that in the VM
version as well, as this is just used to throw an error.

Export the VM function and reuse it in JIT.
2021-10-05 16:33:31 +02:00
Derick Rethans
68b874d10d Fixed bug #81504: Incorrect timezone transition details for POSIX data 2021-10-05 15:22:55 +01:00
Nikita Popov
e91a751e3d Use ephemeral port in test 2021-10-05 16:00:50 +02:00
Nikita Popov
c5e96daa41 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix return type verification with undef var
2021-10-05 15:34:37 +02:00
Nikita Popov
f890c9c5e3 Fix return type verification with undef var
This was loading EG(uninitialized_value) into r0 rather than
FCARG1a.

However, if we fix this issue an existing test fails because
the undef var warning promoted to exception is not caught early
enough, so we need to explicitly check for the exception before
performing the type check.
2021-10-05 15:30:55 +02:00
Dmitry Stogov
41dc14792e Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed SSA construction
2021-10-05 16:14:58 +03:00
Dmitry Stogov
22ef1fb832 Fixed SSA construction 2021-10-05 16:14:39 +03:00
Dmitry Stogov
a5e502ef4d JIT: Combine type guard with overflow detection 2021-10-05 14:43:34 +03:00
Nikita Popov
c958adce70 POST_INC_OBJ/POST_DEC_OBJ don't have optional result
Possibly we should be encoding this in the opcode metadata, rather
than maintaining a separate list.

Fixes oss-fuzz #39503.
2021-10-05 12:05:39 +02:00
Christoph M. Becker
34cd6cbfe0 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Revert "Fix #81424: PCRE2 10.35 JIT performance regression"
2021-10-05 11:52:32 +02:00