Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
c4105b6
[skip ci] Add classification section to SECURITY.md (GH-22109)
iluuu1994 May 22, 2026
b0ef5fc
zlib: fix memory leak if deflate initialization fails and there is a …
ndossche May 20, 2026
ba9dfa7
Merge branch 'PHP-8.4' into PHP-8.5
ndossche May 22, 2026
a544b8b
Merge branch 'PHP-8.5'
ndossche May 22, 2026
6b68d94
Fix GH-22121: double-free in gdImageSetStyle() after overflow early r…
iliaal May 22, 2026
89f7cbd
Merge branch 'PHP-8.4' into PHP-8.5
iliaal May 22, 2026
e22ba55
Merge branch 'PHP-8.5'
iliaal May 22, 2026
946d687
ext/intl: fix IntlListFormatter object error state after format() fai…
LamentXU123 May 22, 2026
cd55746
Merge branch 'PHP-8.5'
devnexen May 24, 2026
eeb12a4
ext/Intl: Return PHP_INT_MIN as int from MessageFormatter::parse() on…
LamentXU123 May 24, 2026
6cc51fe
ext/curl: Use CHECK_HEADER (#22106)
petk May 24, 2026
900797e
ext/intl: various optimization (#22069)
LamentXU123 May 24, 2026
b92c1a7
[ci skip] ext/session: add missing NEWS entries (#22098)
jorgsowa May 24, 2026
5f2ed88
main: remove OPENBASEDIR_CHECKPATH() compatibility macro (#22140)
Girgias May 24, 2026
17b262e
ext/getopt.c: simplify and cleanup (#22139)
DanielEScherzer May 24, 2026
7727193
zlib: fix test skipif sections (#22099)
ndossche May 24, 2026
daa9b09
Merge branch 'PHP-8.4' into PHP-8.5
ndossche May 24, 2026
5fd337e
Merge branch 'PHP-8.5'
ndossche May 24, 2026
ec8342c
Fix GH-19666: imageconvolution() unexpected nan filter value.
devnexen May 22, 2026
1414ae6
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 24, 2026
825e734
Merge branch 'PHP-8.5'
devnexen May 24, 2026
7500c86
ext/intl: fix deprecation warning for GH-19666 test.
devnexen May 24, 2026
973d511
Merge branch 'PHP-8.5'
devnexen May 24, 2026
5dd3909
Fix GH-19739: imageellipse/imagefilledellipse overflow.
devnexen May 22, 2026
4659762
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 24, 2026
68d01d2
Merge branch 'PHP-8.5'
devnexen May 24, 2026
27d7b79
Add lxb_url_is_special to the public API of Lexbor (#22093)
kocsismate May 24, 2026
f58b95e
ini_get_all(): Add `builtin_default_value` column (#22134)
sebastianbergmann May 24, 2026
1bf64ce
Implement "Followup improvements for ext/uri" RFC - URI type detectio…
kocsismate May 24, 2026
d8a5aec
Implement "Followup improvements for ext/uri" RFC - Host type detecti…
kocsismate May 24, 2026
6cdf46f
openssl: Introduce TLS PSK support
bukka May 15, 2026
9e1b285
Fix GH-22142: Assertion failure in zendi_try_get_long() on IS_UNDEF.
devnexen May 25, 2026
dc4f19e
[skip ci] Remove PECL build
iluuu1994 May 8, 2026
2a9aedd
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 26, 2026
cc0e5d3
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 26, 2026
7260b27
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 26, 2026
5a9f7c5
Merge branch 'PHP-8.5'
iluuu1994 May 26, 2026
3447c58
Zend: no need to fetch method name for constructor (#22153)
Girgias May 26, 2026
533162d
ext/intl: document IntlBreakIterator::getPartsIterator() $type change…
jordikroon May 26, 2026
9898293
Release Process: Add commands for merge up (#22096)
edorian May 26, 2026
f97ff59
`zend_string` docs: add missing apostrophe
DanielEScherzer May 27, 2026
95743e0
uri: Update contributor name in CREDITS
TimWolla May 28, 2026
83cddbb
dom: Update contributor name in CREDITS
TimWolla May 28, 2026
7aa91a8
Merge branch 'PHP-8.4' into PHP-8.5
TimWolla May 28, 2026
093a59c
Merge branch 'PHP-8.5'
TimWolla May 28, 2026
a7aacec
Fix compilation errors up until Clang 21.0 (#22141)
kocsismate May 28, 2026
673cb6d
Fix GH-22138: skip libxml/xmlreader tests on non-ASCII paths.
devnexen May 25, 2026
c956d6d
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 29, 2026
9596ab1
Merge branch 'PHP-8.5'
devnexen May 29, 2026
ab748d5
Define LEXBOR_STATIC in CFLAGS_URI for static ext/uri on Windows (#22…
luthermonson May 29, 2026
f9d6735
Merge branch 'PHP-8.5'
TimWolla May 29, 2026
625f0a7
Fix ref unwrap for zend_call_method_if_exists() (zend_test) (GH-22179)
iluuu1994 May 29, 2026
d61ff7c
ext/spl: ArrayObject no longer accepts arbitrary Iterators during uns…
arshidkv12 May 29, 2026
be41c36
ext/phar: harden OpenSSL signature handling in util.c. (#22174)
devnexen May 29, 2026
263743b
ext/standard: http(s) wrapper corrupts the basic auth header on perce…
devnexen May 28, 2026
f357164
ext/standard: http(s) wrapper corrupts the basic auth header on perce…
devnexen May 28, 2026
ce4adcc
Merge branch 'PHP-8.5'
devnexen May 29, 2026
f2b371e
Add new stream erros API
bukka May 28, 2026
639a57d
Fix GH-22081: Memory leak in php_openssl_enable_crypto (#22189)
bukka May 30, 2026
cb8f7bd
Fix GH-19730: undefined behavior in gd_interpolation.c.
devnexen May 25, 2026
6007c09
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 30, 2026
64ebf2f
Merge branch 'PHP-8.5'
devnexen May 30, 2026
7092ff5
main/streams: use zend_call_known_fcc() instead of call_user_function…
Girgias May 30, 2026
b14702a
[skip ci] Specify unserialize() in security policy (GH-22184)
iluuu1994 May 31, 2026
8575931
Fix stream_last_errors() rcn hint (GH-22194)
iluuu1994 May 31, 2026
61e679d
[skip ci] Add CREDITS for GH-22047.phpt
iluuu1994 May 31, 2026
69e023f
ext/*: Make `X_from_obj(zend_object *obj)` functions macros (#22183)
TimWolla Jun 1, 2026
fd33418
Add ZipArchive::closeString() (#21497)
tstarling Jun 1, 2026
56d1ffc
UPGRADING: document `ZipArchive::closeString()` addition
DanielEScherzer Jun 1, 2026
4c8dabf
Fix -Werror compile error in `zend_dval_to_lval_cap()` (#22196)
ndossche Jun 1, 2026
d837199
Merge branch 'PHP-8.5'
ndossche Jun 1, 2026
8172b7e
Fix merge
ndossche Jun 1, 2026
7de451f
uri: Do not copy and normalize already-normalized URIs for uri_parser…
iliaal Jun 1, 2026
a22c56c
Add `error_include_args` INI option to display function args in docre…
NattyNarwhal Jun 1, 2026
016c9fe
Partial application
arnaud-lb Aug 5, 2025
0f0a534
Squashed changes
arnaud-lb Jan 6, 2026
91512db
fixup
arnaud-lb Jun 2, 2026
2445809
Use ZEND_ACC2_FORBID_DYN_CALLS
arnaud-lb Apr 22, 2026
9561a7f
Comment
arnaud-lb Apr 22, 2026
4d0ccda
Amend handling of optional parameters
arnaud-lb Jun 2, 2026
28fd87f
Improve test
arnaud-lb Jun 4, 2026
a8dff3d
Simplify zend_accel_uintptr_hex
arnaud-lb Jun 4, 2026
96a1de6
Remove duplicate test
arnaud-lb Jun 4, 2026
b2a49a9
Constify
arnaud-lb Jun 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .github/matrix.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
$test_macos = in_array('CI: macOS', $labels, true);
$test_msan = in_array('CI: MSAN', $labels, true);
$test_opcache_variation = in_array('CI: Opcache Variation', $labels, true);
$test_pecl = in_array('CI: PECL', $labels, true);
$test_solaris = in_array('CI: Solaris', $labels, true);
$test_windows = in_array('CI: Windows', $labels, true);

Expand Down Expand Up @@ -137,9 +136,6 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
if ($all_jobs || $test_opcache_variation) {
$jobs['OPCACHE_VARIATION'] = true;
}
if (($all_jobs && $ref === 'master') || $test_pecl) {
$jobs['PECL'] = true;
}
if (version_compare($php_version, '8.6', '>=') && ($all_jobs || $test_solaris)) {
$jobs['SOLARIS'] = true;
}
Expand Down
108 changes: 0 additions & 108 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -827,114 +827,6 @@ jobs:
uses: ./.github/actions/test-libmysqlclient
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
PECL:
if: ${{ fromJson(inputs.branch).jobs.PECL }}
runs-on: ubuntu-24.04
steps:
- name: git checkout PHP
uses: actions/checkout@v6
with:
path: php
ref: ${{ fromJson(inputs.branch).ref }}
# Used for ccache action
- name: Move .github
run: mv php/.github .
- name: git checkout apcu
uses: actions/checkout@v6
with:
repository: krakjoe/apcu
path: apcu
- name: git checkout imagick
uses: actions/checkout@v6
with:
repository: Imagick/imagick
path: imagick
- name: git checkout memcached
uses: actions/checkout@v6
with:
repository: php-memcached-dev/php-memcached
path: memcached
- name: git checkout redis
if: ${{ false }}
uses: actions/checkout@v6
with:
repository: phpredis/phpredis
path: redis
- name: git checkout xdebug
uses: actions/checkout@v6
with:
repository: xdebug/xdebug
path: xdebug
- name: git checkout yaml
uses: actions/checkout@v6
with:
repository: php/pecl-file_formats-yaml
path: yaml
- name: apt
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
ccache \
libmemcached-dev \
imagemagick \
libmagickwand-dev \
bison \
re2c
- name: ccache
uses: ./.github/actions/ccache
with:
name: "${{ github.job }}"
php_directory: php
- name: build PHP
run: |
cd php
./buildconf --force
./configure \
--enable-option-checking=fatal \
--prefix=/opt/php \
--enable-cli \
--disable-all \
--enable-session \
--enable-werror
make -j$(/usr/bin/nproc)
sudo make install
- name: build apcu
run: |
cd apcu
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: build imagick
run: |
cd imagick
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: build memcached
run: |
cd memcached
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: build redis
if: ${{ false }}
run: |
cd redis
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: build xdebug
run: |
cd xdebug
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: build yaml
run: |
cd yaml
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
WINDOWS:
if: ${{ fromJson(inputs.branch).jobs.WINDOWS }}
strategy:
Expand Down
31 changes: 29 additions & 2 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ PHP NEWS
. Enabled the TAILCALL VM on Windows when compiling with Clang >= 19 x86_64.
(henderkes)
. Deprecate specifying a nullable return type for __debugInfo(). (timwolla)
. Fixed bug GH-22142 (Assertion failure in zendi_try_get_long() on IS_UNDEF).
(David Carlier)

- BCMath:
. Added NUL-byte validation to BCMath functions. (jorgsowa)
Expand Down Expand Up @@ -69,6 +71,8 @@ PHP NEWS
argument handling now raises TypeError instead of Error. (Weilin Du)
. IntlBreakIterator::getLocale() now raises ValueError for invalid locale
types. (Weilin Du)
. Fixed MessageFormatter::parse() and parseMessage() returning PHP_INT_MIN
as float rather than int on 64-bit platforms. (Weilin Du)

- JSON:
. Enriched JSON last error / exception message with error location.
Expand Down Expand Up @@ -105,6 +109,8 @@ PHP NEWS
openssl_x509_parse() output). (StephenWall)
. Added TLS session resumption support for streams with new context options
and Openssl\Session class. (Jakub Zelenka)
. Added TLS external PSK support for streams with new context options and
Openssl\Psk class. (Jakub Zelenka)

- PCNTL:
. pcntl_exec() now throws a ValueError if the $args array is not a list
Expand Down Expand Up @@ -156,6 +162,12 @@ PHP NEWS
(Girgias)
. Null bytes in session.cookie_path, session.cookie_domain, and
session.cache_limiter are now rejected with a warning. (jorgsowa)
. session.cookie_samesite now rejects invalid values with a warning; only
"Strict", "Lax", "None", or "" are accepted. (jorgsowa)
. session.cookie_lifetime now rejects non-integer and out-of-range values
with a warning. (jorgsowa)
. Session file GC now recursively cleans nested subdirectories when
session.save_path uses the dirdepth prefix. (jorgsowa)
. Changed defaults of session.use_strict_mode (now 1), session.cookie_httponly
(now 1) and session.cookie_samesite (now "Lax"). (jorgsowa)

Expand Down Expand Up @@ -216,12 +228,21 @@ PHP NEWS
null bytes. (Weilin Du)
. proc_open() now raises a ValueError when the $cwd argument contains
null bytes. (Weilin Du)
. ini_get_all() now includes the built-in default value in the details.
(sebastian)
. Fixed bug GH-22171 (Invalid auth header generation in
http(s) stream wrapper). (David Carlier)

- Streams:
. Added new stream errors API including new StreamException, StreamError
classes, StreamErrorStore, StreamErrorMode, StreamErrorCode enums,
stream_last_errors() and stream_clear_errors() functions, error_mode,
error_store and error_handler stream context options and extending some
stream functions with context param. (Jakub Zelenka)
. Added so_keepalive, tcp_keepidle, tcp_keepintvl and tcp_keepcnt stream
socket context options.
socket context options. (Jakub Zelenka)
. Added so_reuseaddr streams context socket option that allows disabling
address reuse.
address reuse. (Jakub Zelenka)
. Fixed bug GH-20370 (User stream filters could violate typed property
constraints). (alexandre-daubois)
. Allowed filtered streams to be casted as fd for select. (Jakub Zelenka)
Expand All @@ -231,6 +252,12 @@ PHP NEWS
. Fixed bug #49874 (ftell() and fseek() inconsistency when using stream
filters). (Jakub Zelenka)

- URI:
. Added Uri\Rfc3986\Uri:getUriType() and Uri\WhatWg\Url:isSpecialScheme().
(kocsismate)
. Added Uri\Rfc3986\Uri:getHostType() and Uri\WhatWg\Url:getHostType().
(kocsismate)

- Zip:
. Fixed ZipArchive callback being called after executor has shut down.
(ilutov)
Expand Down
25 changes: 25 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,31 @@ Vulnerability reports remain private until published. When published, you will
be credited as a contributor, and your contribution will reflect the MITRE
Credit System.

# Classification

Issues commonly reported that are _not_ considered security issues include (but
are not limited to):

- Invocation of specially crafted, malicious code intended to cause memory
violations. This commonly includes malicious error handlers, destructors or
`__toString()` functions. PHP does not offer sandboxing, and the execution of
untrusted code is always considered unsafe. Such issues are bugs, but not
security issues. They may still be reported, though please avoid reporting
the known issues.

- Passing malicious arguments to functions clearly not intended to receive
unsanitized values, e.g. `mysqli_query()`. `escapeshellarg()` on the other
hand should clearly be hardened against unsafe inputs.

- The use of legacy APIs or settings known to be insecure, particularly those
documented as such, or those with a secure alternative.

- The use of FFI.

- `open_basedir` or `disable_functions` bypasses.

- Malicious `unserialize()` inputs.

# Vulnerability Policy

Our full policy is described at
Expand Down
37 changes: 36 additions & 1 deletion UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ PHP 8.6 UPGRADE NOTES
. IntlBreakIterator::getLocale() now raises a ValueError when the type is
neither Locale::ACTUAL_LOCALE nor Locale::VALID_LOCALE instead of
returning false.
. MessageFormatter::parse() and parseMessage() now return PHP_INT_MIN as
int, rather than float, on 64-bit platforms when parsing integer values.
. The $type parameter of IntlBreakIterator::getPartsIterator() has been
changed from string to int to match the underlying implementation.

- PCNTL:
. pcntl_alarm() now raises a ValueError if the seconds argument is
Expand Down Expand Up @@ -194,13 +198,19 @@ PHP 8.6 UPGRADE NOTES
requests, implementing custom server-side session storage, and controlling
session cache behavior.
RFC: https://wiki.php.net/rfc/tls_session_resumption
. Added TLS external PSK support for streams with new strem context options:
psk_client_cb and psk_server_cb. This allows setting and receiving PSK.

- Phar:
. Overriding the getMTime() and getPathname() methods of SplFileInfo now
influences the result of the phar buildFrom family of functions.
This makes it possible to override the timestamp and names of files.

- Streams:
. Added new stream errors API including new classes, enums, functions and
internal API. It is controlled using error_mode, error_store and
error_handler stream context options.
RFC: https://wiki.php.net/rfc/stream_errors
. Added stream socket context option so_reuseaddr that allows disabling
address reuse (SO_REUSEADDR) and explicitly uses SO_EXCLUSIVEADDRUSE on
Windows.
Expand All @@ -209,6 +219,12 @@ PHP 8.6 UPGRADE NOTES
options.
. Allowed casting casting filtered streams as file descriptor for select.

- URI:
. Added Uri\Rfc3986\Uri:getUriType() and Uri\WhatWg\Url:isSpecialScheme().
RFC: https://wiki.php.net/rfc/uri_followup#uri_type_detection
. Added Uri\Rfc3986\Uri:getHostType() and Uri\WhatWg\Url:getHostType().
RFC: https://wiki.php.net/rfc/uri_followup#host_type_detection

========================================
3. Changes in SAPI modules
========================================
Expand Down Expand Up @@ -268,6 +284,12 @@ PHP 8.6 UPGRADE NOTES
when not null, and on failure, gives the error code (one of the EAI_*
constants).

- Standard:
. ini_get_all() now includes a "builtin_default_value" element for each
directive when $details is true. It holds the built-in default value of
the directive (or null if it has none), independent of values set in
php.ini, on the command line, or at runtime.

========================================
6. New Functions
========================================
Expand All @@ -291,9 +313,12 @@ PHP 8.6 UPGRADE NOTES
. `clamp()` returns the given value if in range, else return the nearest
bound.
RFC: https://wiki.php.net/rfc/clamp_v2
. `stream_last_errors()` and `stream_clear_errors()`.
RFC: https://wiki.php.net/rfc/stream_errors

- Zip:
. Added ZipArchive::openString() method.
. Added ZipArchive::closeString() method.

========================================
7. New Classes and Interfaces
Expand All @@ -303,10 +328,17 @@ PHP 8.6 UPGRADE NOTES
. Openssl\OpensslException
. Openssl\Session
RFC: https://wiki.php.net/rfc/tls_session_resumption
. Openssl\Psk

- Standard:
. enum SortDirection
RFC: https://wiki.php.net/rfc/sort_direction_enum
. StreamError
. StreamException
. enum StreamErrorStore
. enum StreamErrorMode
. enum StreamErrorCode
RFC: https://wiki.php.net/rfc/stream_errors

========================================
8. Removed Extensions and SAPIs
Expand Down Expand Up @@ -416,7 +448,10 @@ PHP 8.6 UPGRADE NOTES
. Improved performance of str_split().

- URI:
. Reduced allocations when reading RFC3986 IPv6/IPFuture hosts and paths.
. Reduced allocations when reading IPv6/IPFuture hosts and paths with
Uri\Rfc3986\Uri.
. Improved performance and memory consumption when using normalizing
(non-raw) getters on already-normalized URIs with Uri\Rfc3986\Uri.

- Zip:
. Avoid string copies in ZipArchive::addFromString().
2 changes: 2 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ PHP 8.6 INTERNALS UPGRADE NOTES
instead of copying it in zend_call_function(). Currently only a single
consumed argument is supported.
. Added ZEND_CONTAINER_OF().
. The OPENBASEDIR_CHECKPATH() compatibility macro has been removed, instead
use php_check_open_basedir() directly.

========================
2. Build system changes
Expand Down
5 changes: 5 additions & 0 deletions Zend/Optimizer/compact_literals.c
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
case ZEND_SEND_VAR_NO_REF_EX:
case ZEND_SEND_REF:
case ZEND_SEND_FUNC_ARG:
case ZEND_SEND_PLACEHOLDER:
case ZEND_CHECK_FUNC_ARG:
if (opline->op2_type == IS_CONST) {
opline->result.num = cache_size;
Expand All @@ -745,6 +746,10 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
cache_size += sizeof(void *);
}
break;
case ZEND_CALLABLE_CONVERT_PARTIAL:
opline->op1.num = cache_size;
cache_size += 2 * sizeof(void *);
break;
}
opline++;
}
Expand Down
6 changes: 4 additions & 2 deletions Zend/Optimizer/optimize_func_calls.c
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ void zend_optimize_func_calls(zend_op_array *op_array, zend_optimizer_ctx *ctx)
case ZEND_DO_UCALL:
case ZEND_DO_FCALL_BY_NAME:
case ZEND_CALLABLE_CONVERT:
case ZEND_CALLABLE_CONVERT_PARTIAL:
call--;
if (call_stack[call].func && call_stack[call].opline) {
zend_op *fcall = call_stack[call].opline;
Expand Down Expand Up @@ -223,13 +224,14 @@ void zend_optimize_func_calls(zend_op_array *op_array, zend_optimizer_ctx *ctx)
* At this point we also know whether or not the result of
* the DO opcode is used, allowing to optimize calls to
* ZEND_ACC_NODISCARD functions. */
if (opline->opcode != ZEND_CALLABLE_CONVERT) {
if (opline->opcode != ZEND_CALLABLE_CONVERT && opline->opcode != ZEND_CALLABLE_CONVERT_PARTIAL) {
opline->opcode = zend_get_call_op(fcall, call_stack[call].func, !RESULT_UNUSED(opline));
}

if ((ZEND_OPTIMIZER_PASS_16 & ctx->optimization_level)
&& call_stack[call].try_inline
&& opline->opcode != ZEND_CALLABLE_CONVERT) {
&& opline->opcode != ZEND_CALLABLE_CONVERT
&& opline->opcode != ZEND_CALLABLE_CONVERT_PARTIAL) {
zend_try_inline_call(op_array, fcall, opline, call_stack[call].func);
}
}
Expand Down
Loading
Loading