Commit graph

2376 commits

Author SHA1 Message Date
Nikita Popov
7f6c22cb3d Fix last maybe uninit warnings on 7.4
Most of these only occur under GCC 5. Not fond of all the workarounds
(especially the PDO one), but it gets us a clean build...
2019-04-15 11:35:13 +02:00
Dmitry Stogov
55cc280429 Backported call frame initialization improvement 2019-04-12 02:35:42 +03:00
Dmitry Stogov
39505764ad Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace "ZEND_CALL_CTOR" hack by additional live-range
2019-04-12 01:01:47 +03:00
Dmitry Stogov
88a2268d6b Replace "ZEND_CALL_CTOR" hack by additional live-range 2019-04-12 00:49:45 +03:00
Dmitry Stogov
5f46d2180c Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Use zend_quiet_write instead of ZEND_IGNORE_VALUE
  Suppress warnings using zend_quiet_write
  Don't build JIT if the host architecture doesn't support it
  Fix incompatible pointer warning in zend_test
  Mark zend_jit_print_regset as unused
  Suppress write() warnings in jit_perf_dump.c
  Generate ZEND_COUNT for sizeof()
  Make tsrm_env_lock() void
2019-04-11 13:26:47 +03:00
Nikita Popov
8f441c90ca Merge branch 'PHP-7.4' 2019-04-11 10:49:38 +02:00
Nikita Popov
30df87f77d Generate ZEND_COUNT for sizeof()
sizeof() is an alias of count(), so we should generate the same
code for them.
2019-04-11 10:48:52 +02:00
Dmitry Stogov
c97e3158ed Check for ZEND_CALL_RELEASE_THIS only if ZEND_CALL_CLOSURE is not set 2019-04-11 11:19:09 +03:00
Dmitry Stogov
cc900edd77 Simplify call frame initialization 2019-04-11 02:08:32 +03:00
Nikita Popov
addd5a1693 Merge branch 'PHP-7.4' 2019-04-08 10:20:17 +02:00
Nikita Popov
e86820eb56 Fix invalid function by-ref prop assign handling 2019-04-08 10:18:26 +02:00
Dmitry Stogov
5b34c87d18 Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimized "smart branch" instructions
2019-04-05 00:26:20 +03:00
Dmitry Stogov
d6848625d7 Optimized "smart branch" instructions 2019-04-05 00:25:45 +03:00
Dmitry Stogov
0deb6419e8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Make is_identical() functions return zend_bool (instead of int)
2019-04-04 18:18:52 +03:00
Dmitry Stogov
9038d5c6ee Make is_identical() functions return zend_bool (instead of int) 2019-04-04 18:18:12 +03:00
Dmitry Stogov
c4d5d26df3 Merge branch 'PHP-7.4'
* PHP-7.4:
  unused variable
2019-04-04 17:52:42 +03:00
Dmitry Stogov
575c3576a7 unused variable 2019-04-04 17:52:17 +03:00
Dmitry Stogov
c617fb78ab Merge branch 'PHP-7.4'
* PHP-7.4:
  Improved comparison opcode handlers
2019-04-02 23:47:03 +03:00
Dmitry Stogov
9cb926d8d1 Improved comparison opcode handlers 2019-04-02 23:46:21 +03:00
Dmitry Stogov
71413747c8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed typo
2019-03-20 01:32:01 +03:00
Dmitry Stogov
14359eb7eb Fixed typo 2019-03-20 01:31:35 +03:00
Dmitry Stogov
61548042f7 Merge branch 'PHP-7.4'
* PHP-7.4:
  micro-optimization
2019-03-19 02:02:37 +03:00
Dmitry Stogov
9357953bab micro-optimization 2019-03-19 02:02:14 +03:00
Nikita Popov
513b76794b Make zpp failures always throw, independent of strict_types
Previously zend_parse_parameters (and FastZPP) would handle invalid
arguments depending on strict_types: With strict_types=1, a TypeError
is thrown, with strict_types=0 a warning is thrown and (usually) NULL
is returned. Additionally, some functions (constructors always and
other methods sometimes) opt-it to throwing regardless of strict_types.

This commit changes zpp to always generate a TypeError exception in
PHP 8.
2019-03-11 11:32:20 +01:00
Dmitry Stogov
1b281f801e Merge branch 'PHP-7.4'
* PHP-7.4:
  Avoid useless code duplication, because of unused specialization
2019-02-15 17:52:59 +03:00
Dmitry Stogov
d4bef4ce7b Avoid useless code duplication, because of unused specialization 2019-02-15 17:49:39 +03:00
Dmitry Stogov
89c94161ea Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce slow code size
2019-02-15 17:03:49 +03:00
Dmitry Stogov
78a1d76962 Reduce slow code size 2019-02-15 17:03:04 +03:00
Nikita Popov
faaf510fa4 Merge branch 'PHP-7.4' 2019-02-14 14:02:32 +01:00
Nikita Popov
adf2f39745 Fix build without global regs 2019-02-14 14:01:39 +01:00
Dmitry Stogov
e17667abd5 Merge branch 'PHP-7.4'
* PHP-7.4:
  More accurate handling of global registers (allow VM with single global register)
2019-02-12 17:39:55 +03:00
Dmitry Stogov
626bc3a2de More accurate handling of global registers (allow VM with single global register) 2019-02-12 17:39:02 +03:00
Nikita Popov
a302d11610 Don't silence fatal errors with @ 2019-02-11 16:17:55 +01:00
Dmitry Stogov
bb3a3c1570 Simplify checks 2019-02-07 22:08:51 +03:00
Dmitry Stogov
f45e0ce928 Remove ZEND_OVERLOADED_FUNCTION and corresponding call_method object handler 2019-02-07 21:05:46 +03:00
Nikita Popov
7480f4ebae Merge branch 'PHP-7.4' 2019-02-07 10:06:37 +01:00
Nikita Popov
1a4ffcd2b4 Fix DIM_OBJ specialization in zend_vm_get_opcode_handler_func
DIM_OBJ also specializes over ASSIGN_STATIC_PROP nowadays.
2019-02-07 10:06:25 +01:00
Dmitry Stogov
1a304d357c More accurate get_properties() usage. 2019-02-04 13:20:25 +03:00
Dmitry Stogov
b7f05885e8 Reuse cache_slot 2019-02-04 13:20:25 +03:00
Dmitry Stogov
91ef4124e5 Refactor zend_object_handlers API to pass zend_object* and zend_string* insted of zval(s). 2019-02-04 13:20:25 +03:00
Nikita Popov
9c5ab992ac Merge branch 'PHP-7.4' 2019-01-31 09:40:01 +01:00
Nikita Popov
340c6d3927 Revert "Don't silence fatal errors with @"
This reverts commit abd36289e2.

This wasn't ready for merging yet, there are still some test
failures.
2019-01-31 09:39:10 +01:00
Joe Watkins
839bdf12ee
Merge branch 'PHP-7.4'
* PHP-7.4:
  Don't silence fatal errors with @
2019-01-31 07:11:18 +01:00
Nikita Popov
abd36289e2
Don't silence fatal errors with @ 2019-01-31 07:11:05 +01:00
Zeev Suraski
a81202ac49 Adios, yearly copyright ranges 2019-01-30 11:48:28 +01:00
Zeev Suraski
02557f87bc Adios, yearly copyright ranges 2019-01-30 11:23:29 +02:00
Nikita Popov
6c73b50cf6 Remove static calls to non-static methods 2019-01-30 09:19:02 +01:00
Nikita Popov
a50198d0fe Implement ??= operator
RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator

$a ??= $b is $a ?? ($a = $b), with the difference that $a is only
evaluated once, to the degree that this is possible. In particular
in $a[foo()] ?? $b function foo() is only ever called once.
However, the variable access themselves will be reevaluated.
2019-01-22 11:12:04 +01:00
Dmitry Stogov
0941f25811 Removed useless Z_REFCOUNTED_P() checks. 2019-01-17 10:53:58 +03:00
Dmitry Stogov
8661b6dd5d Reduce slow code size 2019-01-16 14:26:32 +03:00