Skip to content

Commit e0652de

Browse files
committed
Merge branch 'master'
2 parents 8525ece + 5c058d7 commit e0652de

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+484
-92
lines changed

.github/actions/setup-x64/action.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,14 @@ runs:
77
set -x
88
99
sudo service mysql start
10-
sudo service postgresql start
1110
sudo service slapd start
1211
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
1312
# Ensure local_infile tests can run.
1413
mysql -uroot -proot -e "SET GLOBAL local_infile = true"
15-
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
16-
sudo -u postgres psql -c "CREATE DATABASE test;"
1714
docker exec sql1 /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P "<YourStrong@Passw0rd>" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;"
1815
sudo locale-gen de_DE
1916
20-
./.github/scripts/setup-slapd.sh &>/dev/null
17+
./.github/scripts/setup-slapd.sh
2118
2219
sudo cp ext/snmp/tests/snmpd.conf /etc/snmp
2320
sudo cp ext/snmp/tests/bigtest /etc/snmp

.github/actions/test-linux/action.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ runs:
2828
export PDO_OCI_TEST_USER="system"
2929
export PDO_OCI_TEST_PASS="pass"
3030
export PDO_OCI_TEST_DSN="oci:dbname=localhost/XEPDB1;charset=AL32UTF8"
31+
export PGSQL_TEST_CONNSTR="host=postgres dbname=test port=5432 user=postgres password=postgres"
32+
export PDO_PGSQL_TEST_DSN="host=postgres dbname=test port=5432 user=postgres password=postgres"
3133
export SKIP_IO_CAPTURE_TESTS=1
3234
export TEST_PHP_JUNIT=junit.out.xml
3335
export STACK_LIMIT_DEFAULTS_CHECK=1

.github/lsan-suppressions.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
leak:acommon::DictInfoList::elements
2+
leak:timer_create

.github/scripts/setup-slapd.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/sh
2-
set -ex
2+
set -e
33

44
# Create TLS certificate
55
sudo mkdir -p /etc/ldap/ssl
@@ -42,8 +42,6 @@ sudo sed -e 's|^\s*SLAPD_SERVICES\s*=.*$|SLAPD_SERVICES="ldap:/// ldaps:/// ldap
4242
# Configure LDAP database.
4343
DBDN=`sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(&(olcRootDN=*)(olcSuffix=*))' dn | grep -i '^dn:' | sed -e 's/^dn:\s*//'`;
4444

45-
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
46-
4745
sudo service slapd restart
4846

4947
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF

.github/workflows/nightly.yml

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ jobs:
3535
LINUX_X64:
3636
needs: GENERATE_MATRIX
3737
if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
38+
services:
39+
postgres:
40+
image: postgres
41+
env:
42+
POSTGRES_USER: postgres
43+
POSTGRES_PASSWORD: postgres
44+
POSTGRES_DB: test
3845
strategy:
3946
fail-fast: false
4047
matrix:
@@ -47,7 +54,7 @@ jobs:
4754
zts: [true, false]
4855
include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.matrix-include) }}
4956
name: "${{ matrix.branch.name }}_LINUX_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
50-
runs-on: ubuntu-20.04
57+
runs-on: ubuntu-${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
5158
steps:
5259
- name: git checkout
5360
uses: actions/checkout@v3
@@ -122,7 +129,7 @@ jobs:
122129
name: "${{ matrix.branch.name }}_LINUX_X32_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
123130
runs-on: ubuntu-latest
124131
container:
125-
image: ubuntu:20.04
132+
image: ubuntu:${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
126133
env:
127134
MYSQL_TEST_HOST: mysql
128135
PDO_MYSQL_TEST_DSN: mysql:host=mysql;dbname=test
@@ -246,7 +253,14 @@ jobs:
246253
uses: ./.github/actions/verify-generated-files
247254
COVERAGE_DEBUG_NTS:
248255
if: github.repository_owner == 'php' || github.event_name == 'workflow_dispatch'
249-
runs-on: ubuntu-20.04
256+
services:
257+
postgres:
258+
image: postgres
259+
env:
260+
POSTGRES_USER: postgres
261+
POSTGRES_PASSWORD: postgres
262+
POSTGRES_DB: test
263+
runs-on: ubuntu-22.04
250264
steps:
251265
- name: git checkout
252266
uses: actions/checkout@v3
@@ -286,7 +300,7 @@ jobs:
286300
matrix:
287301
branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
288302
name: "${{ matrix.branch.name }}_COMMUNITY"
289-
runs-on: ubuntu-20.04
303+
runs-on: ubuntu-${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
290304
env:
291305
UBSAN_OPTIONS: print_stacktrace=1
292306
USE_ZEND_ALLOC: 0
@@ -396,12 +410,19 @@ jobs:
396410
OPCACHE_VARIATION:
397411
needs: GENERATE_MATRIX
398412
if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
413+
services:
414+
postgres:
415+
image: postgres
416+
env:
417+
POSTGRES_USER: postgres
418+
POSTGRES_PASSWORD: postgres
419+
POSTGRES_DB: test
399420
strategy:
400421
fail-fast: false
401422
matrix:
402423
branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
403424
name: "${{ matrix.branch.name }}_OPCACHE_VARIATION"
404-
runs-on: ubuntu-20.04
425+
runs-on: ubuntu-${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
405426
steps:
406427
- name: git checkout
407428
uses: actions/checkout@v3
@@ -472,7 +493,7 @@ jobs:
472493
matrix:
473494
branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
474495
name: "${{ matrix.branch.name }}_MSAN"
475-
runs-on: ubuntu-22.04
496+
runs-on: ubuntu-${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
476497
steps:
477498
- name: git checkout
478499
uses: actions/checkout@v3
@@ -567,7 +588,7 @@ jobs:
567588
exclude:
568589
- branch: { name: 'PHP-80', ref: 'PHP-8.0' }
569590
name: "${{ matrix.branch.name }}_LIBMYSQLCLIENT"
570-
runs-on: ubuntu-20.04
591+
runs-on: ubuntu-${{ matrix.branch.ref == 'master' && '22.04' || '20.04' }}
571592
steps:
572593
- name: git checkout
573594
uses: actions/checkout@v3
@@ -593,7 +614,7 @@ jobs:
593614
- name: Build mysql-5.7
594615
uses: ./.github/actions/build-libmysqlclient
595616
with:
596-
libmysql: mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
617+
libmysql: mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
597618
withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
598619
- name: Test mysql-5.7
599620
uses: ./.github/actions/test-libmysqlclient
@@ -613,7 +634,8 @@ jobs:
613634
- name: Verify generated files are up to date
614635
uses: ./.github/actions/verify-generated-files
615636
PECL:
616-
runs-on: ubuntu-20.04
637+
if: github.repository_owner == 'php' || github.event_name == 'workflow_dispatch'
638+
runs-on: ubuntu-22.04
617639
env:
618640
CC: ccache gcc
619641
CXX: ccache g++

.github/workflows/push.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ env:
2828
CXX: ccache g++
2929
jobs:
3030
LINUX_X64:
31+
services:
32+
postgres:
33+
image: postgres
34+
env:
35+
POSTGRES_USER: postgres
36+
POSTGRES_PASSWORD: postgres
37+
POSTGRES_DB: test
3138
strategy:
3239
fail-fast: false
3340
matrix:
@@ -37,7 +44,7 @@ jobs:
3744
- debug: false
3845
zts: true
3946
name: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
40-
runs-on: ubuntu-20.04
47+
runs-on: ubuntu-22.04
4148
steps:
4249
- name: git checkout
4350
uses: actions/checkout@v3
@@ -85,7 +92,7 @@ jobs:
8592
name: LINUX_X32_DEBUG_ZTS
8693
runs-on: ubuntu-latest
8794
container:
88-
image: ubuntu:20.04
95+
image: ubuntu:22.04
8996
env:
9097
MYSQL_TEST_HOST: mysql
9198
PDO_MYSQL_TEST_DSN: mysql:host=mysql;dbname=test
@@ -171,8 +178,10 @@ jobs:
171178
include:
172179
- x64: true
173180
zts: false
181+
opcache: true
174182
- x64: false
175183
zts: true
184+
opcache: false
176185
name: "WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
177186
runs-on: windows-2019
178187
env:
@@ -185,6 +194,7 @@ jobs:
185194
THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}"
186195
INTRINSICS: "${{ matrix.zts && 'AVX2' || '' }}"
187196
PARALLEL: -j2
197+
OPCACHE: "${{ matrix.opcache && '1' || '0' }}"
188198
steps:
189199
- name: git config
190200
run: git config --global core.autocrlf false && git config --global core.eol lf

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ PHP NEWS
2323
. Fix bug GH-8821 (Improve line numbers for errors in constant expressions).
2424
(ilutov)
2525
. Fix bug GH-10083 (Allow comments between & and parameter). (ilutov)
26+
. Zend Max Execution Timers is now enabled by default for ZTS builds on
27+
Linux. (Kévin Dunglas)
2628

2729
- Date:
2830
. Implement More Appropriate Date/Time Exceptions RFC. (Derick)
@@ -49,6 +51,8 @@ PHP NEWS
4951
. Added pattern format error infos for numfmt_set_pattern. (David Carlier)
5052
. Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for
5153
the Spoofchecker's class. (David Carlier)
54+
. Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type.
55+
(David Carlier).
5256

5357
- JSON:
5458
. Added json_validate(). (Juan Morales)

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ blog to the most popular websites in the world. PHP is distributed under the
1717
[![Push](https://github.com/php/php-src/actions/workflows/push.yml/badge.svg)](https://github.com/php/php-src/actions/workflows/push.yml)
1818
[![Build status](https://travis-ci.com/php/php-src.svg?branch=master)](https://travis-ci.com/github/php/php-src)
1919
[![Build status](https://ci.appveyor.com/api/projects/status/meyur6fviaxgdwdy/branch/master?svg=true)](https://ci.appveyor.com/project/php/php-src)
20-
[![Build Status](https://dev.azure.com/phpazuredevops/php/_apis/build/status/php.php-src?branchName=master)](https://dev.azure.com/phpazuredevops/php/_build/latest?definitionId=1&branchName=master)
2120
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/php.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:php)
2221

2322
## Documentation

UPGRADING

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ PHP 8.3 UPGRADE NOTES
3333
Internally, this works by caching the result on posix systems. If you want
3434
the old behaviour, you can check the "cached" key in the array returned by
3535
proc_get_status() to check whether the result was cached.
36+
. Zend Max Execution Timers is now enabled by default for ZTS builds on
37+
Linux.
3638

3739
- FFI:
3840
. C functions that have a return type of void now return null instead of
@@ -76,6 +78,10 @@ PHP 8.3 UPGRADE NOTES
7678
- Dom:
7779
. Changed DOMCharacterData::appendData() tentative return type to true.
7880

81+
- Intl:
82+
. datefmt_set_timezone (and its alias IntlDateformatter::setTimeZone)
83+
now returns true on sucess, previously null was returned.
84+
7985
- MBString:
8086
. mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional
8187
casing rules for the Greek letter sigma. For mb_convert_case, conditional

Zend/Optimizer/sccp.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1646,8 +1646,9 @@ static void sccp_visit_instr(scdf_ctx *scdf, zend_op *opline, zend_ssa_op *ssa_o
16461646
break;
16471647
}
16481648

1649-
/* We're only interested in functions with up to three arguments right now */
1650-
if (call->num_args > 3 || call->send_unpack || call->is_prototype) {
1649+
/* We're only interested in functions with up to three arguments right now.
1650+
* Note that named arguments with the argument in declaration order will still work. */
1651+
if (call->num_args > 3 || call->send_unpack || call->is_prototype || call->named_args) {
16511652
SET_RESULT_BOT(result);
16521653
break;
16531654
}

Zend/Optimizer/zend_call_graph.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ struct _zend_call_info {
3838
bool send_unpack; /* Parameters passed by SEND_UNPACK or SEND_ARRAY */
3939
bool named_args; /* Function has named arguments */
4040
bool is_prototype; /* An overridden child method may be called */
41-
int num_args;
41+
int num_args; /* Number of arguments, excluding named and variadic arguments */
4242
zend_send_arg_info arg_info[1];
4343
};
4444

Zend/Zend.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ else
202202
AC_DEFINE(ZEND_DEBUG,0,[ ])
203203
fi
204204
205-
test -n "$GCC" && CFLAGS="-Wall -Wextra -Wno-strict-aliasing -Wno-unused-parameter -Wno-sign-compare $CFLAGS"
205+
test -n "$GCC" && CFLAGS="-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare $CFLAGS"
206206
dnl Check if compiler supports -Wno-clobbered (only GCC)
207207
AX_CHECK_COMPILE_FLAG([-Wno-clobbered], CFLAGS="-Wno-clobbered $CFLAGS", , [-Werror])
208208
dnl Check for support for implicit fallthrough level 1, also add after previous CFLAGS as level 3 is enabled in -Wextra
@@ -307,7 +307,7 @@ AC_ARG_ENABLE([zend-max-execution-timers],
307307
[AS_HELP_STRING([--enable-zend-max-execution-timers],
308308
[whether to enable zend max execution timers])],
309309
[ZEND_MAX_EXECUTION_TIMERS=$enableval],
310-
[ZEND_MAX_EXECUTION_TIMERS='no'])
310+
[ZEND_MAX_EXECUTION_TIMERS=$ZEND_ZTS])
311311
312312
AS_CASE(["$host_alias"], [*linux*], [], [ZEND_MAX_EXECUTION_TIMERS='no'])
313313

Zend/tests/type_declarations/internal_function_strict_mode.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ try {
3232
*** Trying Array Map With Invalid Callback
3333
*** Caught array_map(): Argument #1 ($callback) must be a valid callback or null, first array member is not a valid class name or object
3434
*** Trying Strlen With Float
35-
*** Caught strlen(): Argument #1 ($str) must be of type string, float given
35+
*** Caught strlen(): Argument #1 ($string) must be of type string, float given

Zend/zend.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1310,16 +1310,7 @@ ZEND_API void zend_deactivate(void) /* {{{ */
13101310
}
13111311

13121312
#if GC_BENCH
1313-
fprintf(stderr, "GC Statistics\n");
1314-
fprintf(stderr, "-------------\n");
1315-
fprintf(stderr, "Runs: %d\n", GC_G(gc_runs));
1316-
fprintf(stderr, "Collected: %d\n", GC_G(collected));
1317-
fprintf(stderr, "Root buffer length: %d\n", GC_G(root_buf_length));
1318-
fprintf(stderr, "Root buffer peak: %d\n\n", GC_G(root_buf_peak));
1319-
fprintf(stderr, " Possible Remove from Marked\n");
1320-
fprintf(stderr, " Root Buffered buffer grey\n");
1321-
fprintf(stderr, " -------- -------- ----------- ------\n");
1322-
fprintf(stderr, "ZVAL %8d %8d %9d %8d\n", GC_G(zval_possible_root), GC_G(zval_buffered), GC_G(zval_remove_from_buffer), GC_G(zval_marked_grey));
1313+
gc_bench_print();
13231314
#endif
13241315
}
13251316
/* }}} */

Zend/zend_API.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4222,10 +4222,10 @@ ZEND_API zend_property_info *zend_declare_typed_property(zend_class_entry *ce, z
42224222

42234223
if (ZEND_TYPE_IS_SET(type)) {
42244224
ce->ce_flags |= ZEND_ACC_HAS_TYPE_HINTS;
4225-
}
42264225

4227-
if (access_type & ZEND_ACC_READONLY) {
4228-
ce->ce_flags |= ZEND_ACC_HAS_READONLY_PROPS;
4226+
if (access_type & ZEND_ACC_READONLY) {
4227+
ce->ce_flags |= ZEND_ACC_HAS_READONLY_PROPS;
4228+
}
42294229
}
42304230

42314231
if (ce->type == ZEND_INTERNAL_CLASS) {

Zend/zend_API.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ typedef struct _zend_fcall_info_cache {
144144
{ #name, ZEND_TYPE_INIT_MASK(type_mask | _ZEND_ARG_INFO_FLAGS(pass_by_ref, 0, 0)), default_value },
145145
#define ZEND_ARG_OBJ_TYPE_MASK(pass_by_ref, name, class_name, type_mask, default_value) \
146146
{ #name, ZEND_TYPE_INIT_CLASS_CONST_MASK(#class_name, type_mask | _ZEND_ARG_INFO_FLAGS(pass_by_ref, 0, 0)), default_value },
147-
#define ZEND_ARG_VARIADIC_OBJ_TYPE_MASK(pass_by_ref, name, class_name, type_mask, default_value) \
148-
{ #name, ZEND_TYPE_INIT_CLASS_CONST_MASK(#class_name, type_mask | _ZEND_ARG_INFO_FLAGS(pass_by_ref, 1, 0)), default_value },
147+
#define ZEND_ARG_VARIADIC_OBJ_TYPE_MASK(pass_by_ref, name, class_name, type_mask) \
148+
{ #name, ZEND_TYPE_INIT_CLASS_CONST_MASK(#class_name, type_mask | _ZEND_ARG_INFO_FLAGS(pass_by_ref, 1, 0)), NULL },
149149

150150
/* Arginfo structures with object type information */
151151
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, class_name, allow_null) \

Zend/zend_gc.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1741,6 +1741,22 @@ static void zend_gc_root_tmpvars(void) {
17411741
}
17421742
}
17431743

1744+
#if GC_BENCH
1745+
void gc_bench_print(void)
1746+
{
1747+
fprintf(stderr, "GC Statistics\n");
1748+
fprintf(stderr, "-------------\n");
1749+
fprintf(stderr, "Runs: %d\n", GC_G(gc_runs));
1750+
fprintf(stderr, "Collected: %d\n", GC_G(collected));
1751+
fprintf(stderr, "Root buffer length: %d\n", GC_G(root_buf_length));
1752+
fprintf(stderr, "Root buffer peak: %d\n\n", GC_G(root_buf_peak));
1753+
fprintf(stderr, " Possible Remove from Marked\n");
1754+
fprintf(stderr, " Root Buffered buffer grey\n");
1755+
fprintf(stderr, " -------- -------- ----------- ------\n");
1756+
fprintf(stderr, "ZVAL %8d %8d %9d %8d\n", GC_G(zval_possible_root), GC_G(zval_buffered), GC_G(zval_remove_from_buffer), GC_G(zval_marked_grey));
1757+
}
1758+
#endif
1759+
17441760
#ifdef ZTS
17451761
size_t zend_gc_globals_size(void)
17461762
{

Zend/zend_gc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ ZEND_API bool gc_enabled(void);
4646
ZEND_API bool gc_protect(bool protect);
4747
ZEND_API bool gc_protected(void);
4848

49+
#if GC_BENCH
50+
void gc_bench_print(void);
51+
#endif
52+
4953
/* The default implementation of the gc_collect_cycles callback. */
5054
ZEND_API int zend_gc_collect_cycles(void);
5155

Zend/zend_portability.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,4 +737,17 @@ extern "C++" {
737737
# define ZEND_INDIRECT_RETURN
738738
#endif
739739

740+
#if __GNUC__ && !defined(__clang__)
741+
# define __DO_PRAGMA(x) _Pragma(#x)
742+
# define _DO_PRAGMA(x) __DO_PRAGMA(x)
743+
# define ZEND_CGG_DIAGNOSTIC_IGNORED_START(warning) \
744+
_Pragma("GCC diagnostic push") \
745+
_DO_PRAGMA(GCC diagnostic ignored warning)
746+
# define ZEND_CGG_DIAGNOSTIC_IGNORED_END \
747+
_Pragma("GCC diagnostic pop")
748+
#else
749+
# define ZEND_CGG_DIAGNOSTIC_IGNORED_START(warning)
750+
# define ZEND_CGG_DIAGNOSTIC_IGNORED_END
751+
#endif
752+
740753
#endif /* ZEND_PORTABILITY_H */

0 commit comments

Comments
 (0)